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

ما الفرق بين ال Cursor وال For Loop


ERP

Recommended Posts

السلام عليكم



هذا كود كتبه الأخ hanon_OCP في أحد المواضيع

DECLARE  
CURSOR  EMP_CURSOR IS  
SELECT EMPNO FROM EMP; BEGIN FOR REC IN EMP_CUR LOOP 
RAISE_SAL(REC.EMPNO);
END LOOP;
END;



أرد أن أعرف الفرق بينه وبين هذا الكود

BEGIN FOR REC IN (
SELECT EMPNO FROM EMP )
LOOP 
RAISE_SAL(REC.EMPNO);
END LOOP;
END;



من ناحية ال Performance

وشكرا مقدما :D

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

  • بعد 2 أسابيع...

السلام عليكم ورحمةالله وبركاته :-
أخي الكريم .. هذا الرد على حسب علمي وفهمي للموضوع :
1- الـ (Cursor) يقوم بعمل إستعلام مرة واحدة لبيانات الجدول ووضعها في متغير ثم يقوم بفردها دون الحاجة إلى الذهاب إلى قاعدة البيانات كل مرة وإحضار البيانات .
2- الـ (Cursor) أقوى على مستوى العميل إذا إستخدمته في بيانات ثابتة أي لا تتغير كثيراً كفرد مثلاً أسماء الموظفين في مكان معين فإن الموظفين قليلاً ما يتم إضافتهم . "طبعاً المقصود في لحظة طلب البيانات إلى العميل إلى إنتهاء العميل من عملية فرد الأسماء هل من المتوقع أن يعمل أحد حفظ !!؟ " .
3- الـ (For Loop) هو أقوى في حالة أنه البيانات التي تطلبها يجب الذهاب ومراجعتها سجلاً سجلاً مع فردها عند العميل .. طبعا العميل يعني "Clint" وليس "Customer" .
--------------
هذا والله أعلم ..
إبراهيم بخش ،،، المدينة المنورة .

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

وأيضاً لا تنسى أنه الـ(Cursor) يمكن أن تستخدمه أكثر من مرة في نفس الشاشة لأنه محفوظ في متغير .
أو أكثر من مرة في نفس التعريف (Declare) .
----------------------
ارجو أن أكون قد وفقت بالشرح .

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

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

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

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

×   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.

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

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

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