الانتقال إلى المحتوى
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.

مشكلة في Cursor

Featured Replies

بتاريخ:

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

اولا جزاكم الله خيرا علي هذا المنتدي وجعله الله في ميزان حسناتكم

من فضلكم عندي مشكلة في فهم المثال التالي

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;




وجزاكم الله كل خير

===============================================================

الهم استخدمنا ولا تستبدلنا وقنا عذاب النار

بتاريخ:

السلام عليكم..
بالنسبة للعبارة for update :
جميعنا نعلم أن تنفيذ عمليات الـDML يعتبر كبداية لعملية المناقلة (transaction) فعند تنفيذها مباشرةً يتم قفل لكافة السجلات التي تم التأثير عليها من قبل المستخدم الحالي بحيث لا يستطيع أحد من المستخدمين الأخرين تنفيذ أي عملية DML عليها قبل عمل Commit أو Rollback من قبل المستخدم الحالي .. و فقط يمكنهم عمل استعلام و طبعاً يشاهدون المعلومات القديمة..
تفيد هذه التعليمة بقفل السجلات التي تم التأثير عليها حتى في تعليمة السيليكت يعني تمنعهم حتى من مشاهدة السجلات التي في قيد عملية المناقلة ...و تنفذ عادة قبل عملية الـ Update بهدف التعديل على المعلومات الفعلية التي قمنا بمشاهدتها بالاستعلام ..
أما عبارة NOWAIT فهي كالتالي : إذا أردنا استخدام تعليمة select for update و كان الجدول مقفول مسبقاً فإنه ينتظر حتى ينتهي القفل من أجل عمل قفل جديد لأنه لا يمكن قفل نفس الجدول من قبل أكثر من مستخدم..و بهذا الانتظار لا استطيع متابعة عملي ... لذلك يفيد هذا الخيار بعدم الانتظار و يكتفي بإظهار رسالة تفيد بأن السجلات التي طلبت قفلها هي مقفولة مسبقاً من قبل مستخدم آخر...

أي استفسار أنا جاهز...

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

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

جزاك الله كل خير

بتاريخ:

بارك الله فيك وزادك من علمه

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

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

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

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

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

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.