الانتقال إلى المحتوى

Bulk Collect & Forall


gamal

Recommended Posts

السلام عليكم و رحمة الله و بركاته


إخواني في الله الرجاء التكرم باطلاعي الفرق بين إستخدام كلا من BULK COLLECT & FORALL(شرح مع أمثلة رجاء) ولكم مني جزيل الشكر و التقدير.

رابط هذا التعليق
شارك

  • بعد 1 سنة...

الله يعينك منتظر عام ونصف

تفضل هذا الشرح لصبرك

declare
TYPE numlist IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
id numlist;
 l_start  NUMBER;
BEGIN for i in 1..4000 loop
id(i):=i;
end loop;

-------------------old way
l_start := DBMS_UTILITY.get_time;
FOR i IN 1 .. 4000loop
UPDATE emp
SET sal = 2
WHERE sal = id(i);
end loop;

DBMS_OUTPUT.put_line('old way cost '||(DBMS_UTILITY.get_time - l_start));

----------------new way for update and insert only
l_start := DBMS_UTILITY.get_time;
FORall i IN 1 .. 4000
UPDATE emp
SET sal = 2
WHERE sal = id(i);

DBMS_OUTPUT.put_line('new way cost '||(DBMS_UTILITY.get_time - l_start));
END;

رابط هذا التعليق
شارك

وعملتلك مثال كمان يسيدى لشرح bulk collect

DECLARE
type tt is table of number INDEX BY PLS_INTEGER ;	
t tt;
BEGIN SELECT e.sal--جاب كل صفوف الموظفين وملاهم جوة مرة واحدة
 BULK COLLECT INTO t FROM   emp e ;

 
 for i in 1..t.count loop--اشاهدهم
   DBMS_OUTPUT.put_line(t(i));
  end loop;
END;


جرب هذه الاكواد بالتود واى خدمة مش عايزك تزعل خاص
سنة ونص مستنى ينهار ابيض

رابط هذا التعليق
شارك

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

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

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

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

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