Rallush بتاريخ: 16 يوليو 2010 تقديم بلاغ مشاركة بتاريخ: 16 يوليو 2010 (معدل) مرحبا ممكن سؤال عاجل لوسمحتو :عندي حلقتين متداخلتين الأولى عبارة عن cursor يجلب قيم الثانية عبارة عن استعلام select يرجع قيم متعلقة بالقيم التي يتم جلبها من الحلقة السابقةتحوي هذه الحلقة الثانية عداد, و في حال تم جلب قيمة null من هذا الستعلام أود المتابعة بالقيمة التالية , و لكن الذي حصل هو أنه يتم الخروج من الحلقة بدون المتابعة loopfetch cursor into a,bi:=0;loopif (i<3) thenselect * from table where col1=aand col2=b;end if;i:=i+1;;end loopend loop;exception when no_data_found then messag(1 هل يتوجب علي كتابة كود ما في قسم ال exception لجعله يكمل الحلقة و عدم الخروج منها و شكرا سلف تم تعديل 16 يوليو 2010 بواسطة Rallush اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mostfa_future بتاريخ: 16 يوليو 2010 تقديم بلاغ مشاركة بتاريخ: 16 يوليو 2010 اخى الكريم انا مش فهام بذبت كلامك لكن اللى فهمتو انك عندك 2 loop عايز لما جمله السيكلت االلى فى لو ب الداخلى متلاقيش قيمه يكمل لوب مش يخرج والاجراء يخلص لو هوده قصدك يبقى لازم تعمل exception داخال لوب الداخلى مش زاى مانت عامل فى لوب الخارجى . المتال القادم هيكون على hr اول لوب هيكاب القسم و التاى يسرد الموظفين فكرتك ان لو قسم مش موجد فيها موظفين يكمل على القسم التالى مش يقوف ده اللى انا فهمتو الكود اهو لعلا اكون فهمت سولك صح SET SERVEROUTPUT ON DECLARE v_dep varchar2(50); emp_name varchar2(50); begin for i in (select DISTINCT department_name, department_id from departments) loop DBMS_OUTPUT.PUT_LINE(i.department_name); for k in 1..3 loop begin select last_name into emp_name from employees where department_id=i.department_id and rownum=k ; DBMS_OUTPUT.PUT_LINE(emp_name); EXCEPTION when too_many_rows then NULL; when no_data_found then DBMS_OUTPUT.PUT_LINE('end'||' '||i.department_name ); END ; end loop; end loop ; end ; طبعا انا محدد عرض بس 3 موظفين اتوضيح هتلاحظ عند تنفيذ المثال وجود اقسام فيها لايوجد فيه موظفين او يوجد فيها اقل من 3 موظفين فى هذه الحاله سوف يطبع end ويكمل لوب عادى من غير ما يخرج منها . ارجو ان يكون فهمى لسولك صحيح .و بالتوفيق لجميع. اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.