الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

سوال فى 2 Cursor متداخلين

Featured Replies

بتاريخ:

السلام عليكم ورحمه الله وبركاته
انا عندى جدولين الجدول الاول فيه حقلين رقم الاسبوع وقيمه الاسبوع والجدول الثانى فيه حقلين رقم الصنف واحتياطى الصنف
اريد ان اعمل كود يقوم بعمليه ضرب لكل قيمه اسبوع على حدى مع كل قيم الاحتياطى لكل صنف فى الجدول الثانى ناتج هذه العمليه يوضع فى جدول اخر يعنى اقصد ان قيمه الاسبوع فى الصف الاول تضرب فى كل قيم الاحتياطى فى كل الصفوف اللى فى الجدول الثانى ثم قيمه الاسبوع اللى فى الصف الثانى وهكذا حتى اخر صف فى الجدول

انا عملت الكود الاتى ولكن الناتج غير صحيح

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;

بتاريخ:

فى هذه الحالة يستحن استخدام for loop
والsyntex الخص بها كالآتي:
for I in cursor_name loop
your 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 2
end 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) loop
update emp
set sal = i.sal*1.10;
end loop;
commit;

بتاريخ:
  • كاتب الموضوع

السلام عليكم ورحمه الله وبركاته
احب ان اخبر كل من قراء الموضوع ان المشكله اتحلت عندى وكانت المشكله فى جزء اخر غير المذكور يعنى اقصد من كلامى ان الكود اللى انا كتبه ده صحيح ولايوجد به اى مشاكل وانا اسف على انى شغلتكم بالمشكله وهى مفيش مشكله اصلا

تم تعديل بواسطة amr fawzy

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.