بتاريخ: 11 فبراير 200818 سنة comment_122228 السلام عليكم ورحمه الله وبركاته انا عندى جدولين الجدول الاول فيه حقلين رقم الاسبوع وقيمه الاسبوع والجدول الثانى فيه حقلين رقم الصنف واحتياطى الصنف اريد ان اعمل كود يقوم بعمليه ضرب لكل قيمه اسبوع على حدى مع كل قيم الاحتياطى لكل صنف فى الجدول الثانى ناتج هذه العمليه يوضع فى جدول اخر يعنى اقصد ان قيمه الاسبوع فى الصف الاول تضرب فى كل قيم الاحتياطى فى كل الصفوف اللى فى الجدول الثانى ثم قيمه الاسبوع اللى فى الصف الثانى وهكذا حتى اخر صف فى الجدولانا عملت الكود الاتى ولكن الناتج غير صحيح open weeks_cur; loop fetch weeks_cur into weekord,valueofweek; open material_cur; loop fetch material_cur into MATERIALID,extra; VAL:=valueofweek*extra insert into TABLE3 values (weekord, MATERIALID,VAL); commit; exit when material_cur %notfound; end loop; close material_cur; exit when weeks_cur %notfound; end loop; close weeks_cur; end; تقديم بلاغ
بتاريخ: 12 فبراير 200818 سنة comment_122280 فى هذه الحالة يستحن استخدام for loopوالsyntex الخص بها كالآتي:for I in cursor_name loopyour statement;end loop;for i inweeks_cur loop -- loop1 for j in material_cur VAL:=valueofweek*extra insert into TABLE3 values (weekord,MATERIALID,VAL); commit; end loop; -- end loop 2end loop; -- end loop 1استبدل المتغيرات الخاص بالكرسور ب i.column_name او j.i.column_name على حسب الكرسور و column_name هوو اسم الحقل الذي يتم الختياره فى جملة الكرسور weekord = i.coulmn1 valueofweek = i.column2 materialid =j.column1 extra = j.column2 -- ممكن بدل ماتعرف الكرسور فى decalre تعرفها مباشرة فى جملة for loop مثال:for i in (select sal from emp where deptno = 30) loopupdate empset sal = i.sal*1.10;end loop;commit; تقديم بلاغ
بتاريخ: 12 فبراير 200818 سنة كاتب الموضوع comment_122324 السلام عليكم ورحمه الله وبركاته احب ان اخبر كل من قراء الموضوع ان المشكله اتحلت عندى وكانت المشكله فى جزء اخر غير المذكور يعنى اقصد من كلامى ان الكود اللى انا كتبه ده صحيح ولايوجد به اى مشاكل وانا اسف على انى شغلتكم بالمشكله وهى مفيش مشكله اصلا تم تعديل 12 فبراير 200818 سنة بواسطة amr fawzy تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.