بتاريخ: 4 مارس 200916 سنة comment_150376 السلام عليكم ورحمة الله وبركاته==================اولا جزاكم الله خيرا علي هذا المنتدي وجعله الله في ميزان حسناتكممن فضلكم عندي مشكلة في فهم المثال التالي CREATE OR REPLACE PROCEDURE pf_07_06 IS CURSOR employees_cursor (p_deptno NUMBER, p_job VARCHAR2)IS SELECT employee_id, last_name FROM employees WHERE department_id = p_deptno AND job_id = p_job; employees_record employees_cursor%ROWTYPE; BEGIN OPEN employees_cursor(80,'SA_REP'); LOOP FETCH employees_cursor INTO employees_record; DBMS_OUTPUT.PUT_LINE (TO_CHAR (employees_record.employee_id) ||' ' || employees_record.last_name); EXIT WHEN employees_cursor%NOTFOUND; END LOOP; CLOSE employees_cursor; OPEN employees_cursor(60, 'IT_PROG'); LOOP FETCH employees_cursor INTO employees_record; DBMS_OUTPUT.PUT_LINE (TO_CHAR (employees_record.employee_id) ||' ' || employees_record.last_name); EXIT WHEN employees_cursor%NOTFOUND ; END LOOP; CLOSE employees_cursor; END pf_07_06; / كنت عاوز اعرف ما فائدة استخدام FOR UPDATE OF salary NOWAIT; وجزاكم الله كل خير===============================================================الهم استخدمنا ولا تستبدلنا وقنا عذاب النار تقديم بلاغ
بتاريخ: 4 مارس 200916 سنة comment_150390 السلام عليكم..بالنسبة للعبارة for update :جميعنا نعلم أن تنفيذ عمليات الـDML يعتبر كبداية لعملية المناقلة (transaction) فعند تنفيذها مباشرةً يتم قفل لكافة السجلات التي تم التأثير عليها من قبل المستخدم الحالي بحيث لا يستطيع أحد من المستخدمين الأخرين تنفيذ أي عملية DML عليها قبل عمل Commit أو Rollback من قبل المستخدم الحالي .. و فقط يمكنهم عمل استعلام و طبعاً يشاهدون المعلومات القديمة..تفيد هذه التعليمة بقفل السجلات التي تم التأثير عليها حتى في تعليمة السيليكت يعني تمنعهم حتى من مشاهدة السجلات التي في قيد عملية المناقلة ...و تنفذ عادة قبل عملية الـ Update بهدف التعديل على المعلومات الفعلية التي قمنا بمشاهدتها بالاستعلام .. أما عبارة NOWAIT فهي كالتالي : إذا أردنا استخدام تعليمة select for update و كان الجدول مقفول مسبقاً فإنه ينتظر حتى ينتهي القفل من أجل عمل قفل جديد لأنه لا يمكن قفل نفس الجدول من قبل أكثر من مستخدم..و بهذا الانتظار لا استطيع متابعة عملي ... لذلك يفيد هذا الخيار بعدم الانتظار و يكتفي بإظهار رسالة تفيد بأن السجلات التي طلبت قفلها هي مقفولة مسبقاً من قبل مستخدم آخر...أي استفسار أنا جاهز... تم تعديل 4 مارس 200916 سنة بواسطة TROYMAN تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.