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

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

Featured Replies

بتاريخ:

انا عندي مشكله في الكود البسيط ده ان جزء 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 مكن حدد يفهمني اه الي حصل بالظبط

بتاريخ:

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

هناك فرق بين امر ال 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.

بتاريخ:

بص حضرتك الكود سليم ومفهوش حاجة بس لما حضرتك تستخدم ال 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;

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

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

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

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

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

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.