بتاريخ: 13 أبريل 200620 سنة comment_66303 فى هذا الاجراء .... declare cursor cur is select manager_id from employees; begin for rec in cur loop if rec.manager_id = 1023 then null; end if; end loop; raise_application_error(-20101,'Invalid.'); end; اريد ان اعرف كيف يتحقق هذا الشرط عند صحته وعند عدم صحته.... تقديم بلاغ
بتاريخ: 16 أبريل 200620 سنة comment_66506 لا يوجد اى جديد سوف يحدث بعد عدد مرات تكرار ال loop ( طبعا حسب عدد السجلات المسترجعة من ال cursor ) سوف ينفذ الجملة raise_application_error(-20101,'Invalid.'); سواء الشرط تحقق ام لا تم تعديل 16 أبريل 200620 سنة بواسطة egyhamada تقديم بلاغ
بتاريخ: 25 أبريل 200620 سنة كاتب الموضوع comment_67452 هذا التمرين مجرد مثال وليس التمرين الأصلى (فى الكتاب) وهو ....--------- CREATE OR REPLACE PACKAGE check_pack IS PROCEDURE chk_dept_job (p_deptid IN employees.department_id%TYPE, p_job IN employees.job_id%TYPE); END check_pack; -------- CREATE OR REPLACE PACKAGE BODY check_pack IS i NUMBER := 0; CURSOR emp_cur IS SELECT department_id, job_id FROM employees; TYPE emp_table_type IS TABLE OF emp_cur%ROWTYPE INDEX BY BINARY_INTEGER; deptid_job emp_table_type; PROCEDURE chk_dept_job (p_deptid in employees.department_id%TYPE, p_job in employees.job_id%TYPE) IS BEGIN FOR k IN deptid_job.FIRST .. deptid_job.LAST LOOP IF p_deptid = deptid_job(k).department_id AND p_job = deptid_job(k).job_id THEN RETURN; END IF; END LOOP; RAISE_APPLICATION_ERROR (-20500, 'Not a valid job for this dept'); END chk_dept_job; BEGIN -- one-time-only-procedure FOR emp_rec IN emp_cur LOOP deptid_job(i) := emp_rec; i := i + 1; END LOOP; END check_pack; / فما تفسير ....وكيف يتحقق الشرط من عدمه مع raise_application_error ... IF p_deptid = deptid_job(k).department_id AND p_job = deptid_job(k).job_id THEN RETURN; END IF; END LOOP; RAISE_APPLICATION_ERROR (-20500, 'Not a valid job for this dept'); --- وتفسير ان الاجراء الأتى فى النهاية ... BEGIN -- one-time-only-procedure FOR emp_rec IN emp_cur LOOP deptid_job(i) := emp_rec; i := i + 1; END LOOP; تقديم بلاغ
بتاريخ: 2 مايو 200620 سنة كاتب الموضوع comment_68038 فى الباكج السابقة .... IF p_deptid = deptid_job(k).department_id AND p_job = deptid_job(k).job_id THEN RETURN; END IF; END LOOP; RAISE_APPLICATION_ERROR (-20500, 'Not a valid job for this dept'); --- هل اذا تحققت حالة if سوف ينفذ ... RAISE_APPLICATION_ERROR (-20500, 'Not a valid job for this dept'); أم لا ... تقديم بلاغ
بتاريخ: 9 مايو 200619 سنة comment_68744 اخى اعتقد ان عندما تريد ارجاع قيمه لبد من تحديد القيمه المرجعه اى return pl_jop;على سبيل المثال لانه لبد من رد فعل يحدث عند حدوث حدث معينارجوا المعزره لانى لسة خبير فى ال pl sqlايهاب وجدى تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.