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

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

مشكله Exception Part لايعمل


2 رد (ردود) على هذا الموضوع

#1 sasa87

sasa87

    عضو نشط

  • الأعضــاء
  • 239 مشاركة

تاريخ المشاركة 01 January 2010 - 03:14 PM

انا عندي مشكله في الكود البسيط ده ان جزء exception لا يفعل عند عدم وجود بيانات ارجو المساعده في معرفة هذا الخطاء الغريب
DECLARE
dummy NUMBER;
BEGIN SELECT count(1) INTO dummy FROM emp where deptno=200;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('no data found');
WHEN OTHERS THEN
NULL;
END;


المفرض ان الرساله no data foun تظهر نظر لعدم وجود بيانات خاصه بالادارة 200 تمام كده المشكله انه الجزء لا يعمل اطلاق مش عارف العيب في الدتابيز عندي ولا اه ياريت حد يجربه ويقلي اشتغل عنده ولا لالالالالالالالا علشان اعرف الغلط فين بالظبط
والغريب ان الكود ده يعمل
DECLARE
dummy NUMBER;
BEGIN SELECT sal INTO dummy FROM emp where deptno=200;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('no data found');
END;


هو اشتغل لما انا غيريت count الى sal مكن حدد يفهمني اه الي حصل بالظبط

#2 Amgad

Amgad

    مشرف عام ومشرف قسم تحليل النظم

  • الفريق الإداري
  • 4,559 مشاركة
  • الاسم الأول:امجد
  • اسم العائلة:حلمي
  • البـلـد: Country Flag
  • المنصب الحالي:Business Systems Analyst at al Fanar Co. Riyadh KSA

تاريخ المشاركة 01 January 2010 - 04:02 PM

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

هناك فرق بين امر ال select وعدم وجود بيانات when no data found
عند تنفيذ امر البحث فى الجدول ... ولم يجد بيانات خاصة بالادارة 200 فسيذهب الى تنفيذ ما بداخل ال exception

ولكن تنفيذ الوظيفه count or sum فسيقوم بالبحث من الجدول ويعود بنتيجة (صفر) فى حالة عدم تحقق الشرط وهو الادارة= 200
وبالتالى لا يعتبر خطأ ولن ينفذ امر ال exception

هل وضحت الفكرة
مع امر الcount لن يكون هناك خطأ ...

اليك الملفات مرة اخرى بعد التنفيذ
SQL> DECLARE
2 dummy NUMBER;
3 BEGIN SELECT sal INTO dummy FROM emp where deptno=200;
4 EXCEPTION
5 WHEN NO_DATA_FOUND THEN
6 DBMS_OUTPUT.PUT_LINE('no data found');
7 END;
8 /
no data found

PL/SQL procedure successfully completed.
================================
SQL> ed
Wrote file afiedt.buf

1 DECLARE
2 dummy NUMBER;
3 BEGIN SELECT sum(sal) INTO dummy FROM emp where deptno=200;
4 DBMS_OUTPUT.PUT_LINE('total salary= ' || to_char(dummy));
5 EXCEPTION
6 WHEN NO_DATA_FOUND THEN
7 DBMS_OUTPUT.PUT_LINE('no data found');
8* END;
SQL> /

total salary=

PL/SQL procedure successfully completed.

لا إله إلا الله الحليم الكريم
لا اله إلا الله العلى العظيم
لا اله إلا الله رب السماوات السبع و رب العرش العظيم
‏اللهم ارزقني قبل الموت توبة وعند الموت شهادة وبعد الموت جنة
اللهم ارزقني حسن الخاتمة
اللهم هون علينا سكرات الموت ... ونور علينا قبورنا
اللهم ارزقني الموت وأنا ساجد لك يا ارحم الراحمين
اللهم ثبتني عند سؤال الملكين
اللهم اجعل قبري روضة من رياض الجنة ولا تجعله حفرة من حفر النار
اللهم اني اعوذ بك من فتن الدنيا
اللهم ارحم ابائنا وامهاتنا واغفر لهما وتجاوز عن سيئاتهما وادخلهم فسيح جناتك ... والحقنا بهما يا رب العالمين
اللهم ارحم موتانا وموتى المسلمين واشفي مرضانا ومرضى المسلمين
اللهم اغفر للمسلمين والمسلمات والمؤمنين والمؤمنات الأحياء منهم والأموات
وبارك اللهم على سيدنا محمد صلى الله عليه وسلم
اللهم آمين ... اللهم آمين ... اللهم آمين


....


#3 @nana@

@nana@

    عضو نشط

  • الأعضــاء
  • 284 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Don't Say ,I Don't Know..But Try&& Error :(
    I Adore Oracle 4 Ever :D

تاريخ المشاركة 01 January 2010 - 04:07 PM

بص حضرتك الكود سليم ومفهوش حاجة بس لما حضرتك تستخدم ال count حضرتك عايز تعرف عدد الموظفين ال ف القسم

دا ا هو 200 وهو اصلا مفهوش صح ؟ ...يعنى هيرجع 0 ودى تعتبر قيمة

يعنى فرضا لو حضرتك عايز تشيك ع ال count ممكن تستخدم if

اما بالنسبة ل sal فهنا بنرجع بيانات من الجدول ف حالة عدم وجود فبيظهر ارور ويبص ع ال EXCEPTION

set serveroutput on DECLARE
dummy NUMBER;
BEGIN SELECT count(1) INTO dummy FROM emp where deptno=200;
if dummy=0 then
DBMS_OUTPUT.PUT_LINE('no data found');
end if;
END;


FatmaElgzar
https://www.facebook...acleJavaAcademy

http://www.facebook....gDream.Computer
Try 2 Change Ur Life 2 The Best
---------------------------------------
ياحى ياقيوم برحمتك أستغيث ، أصلح لى شأنى كله ولاتكلنى الى نفسى طرفة عين .

حسبى الله لااله الا هو ، عليه توكلت وهو رب العرش العظيم
--------------------------------------------------
905527214.gif