طَبِّقْهاتعلّم المبدأ، وطبّقه بيدكمقرر 122 · برمجة قواعد البيانات
تقييم الدرس 18

معالجة الأخطاء: RAISE و EXCEPTION

أجب عن الأسئلة ثم اضغط «صحّح ورقتي» في آخر الصفحة. ← العودة إلى الدرس

أسئلة التقييم

تقييم الدرس 18: معالجة الأخطاء: RAISE و EXCEPTION. إجاباتك تُحفظ تلقائيًّا على هذا الجهاز؛ أجب ثم اضغط «صحّح ورقتي».

1السؤال الأول: اختر الإجابة الصحيحة

1) أي أمر يوقف الإجراء ويُلغي تغييراته؟
2) ماذا يطبع هذا الكود؟
query.sql
DO $$BEGIN  PERFORM 1 / 0;EXCEPTION WHEN division_by_zero THEN  RAISE NOTICE 'قسمة على صفر';END $$;
3) SQLERRM يحتوي:
4) في MySQL يُرفع خطأ مخصص بـ:
5) الخطأ في WHEN OTHERS THEN NULL:

2السؤال الثاني: صح أم خطأ

1) RAISE NOTICE يوقف التنفيذ.
الصواب: خطأ
2) يمكن إضافة تلميح للخطأ بـ USING HINT.
الصواب: صح
3) التقاط الخطأ في كتلة داخلية يُلغي كل ما قبلها في الكتلة الخارجية.
الصواب: خطأ
4) OTHERS يلتقط أي خطأ.
الصواب: صح
5) مقابل unique_violation في Oracle هو DUP_VAL_ON_INDEX.
الصواب: صح

3السؤال الثالث: أكمل الفراغات من القائمة المنسدلة

1) قسم التقاط الأخطاء في الكتلة يبدأ بـ .
الإجابة: EXCEPTION
2) رمز الخطأ من خمسة أحرف يُقرأ من .
الإجابة: SQLSTATE
3) لإعادة رفع الخطأ نفسه بعد تسجيله نكتب
الإجابة: RAISE;

4السؤال الرابع: أسئلة عملية

1) كم صفًّا في الجدول بعد التنفيذ؟

query.sql
CREATE TABLE t (n int UNIQUE);DO $$BEGIN  FOR i IN 1..5 LOOP    BEGIN      INSERT INTO t VALUES (i % 3);    EXCEPTION WHEN unique_violation THEN NULL;    END;  END LOOP;END $$;SELECT count(*) FROM t;
الناتج الصحيح:
النتيجة · صف واحد
count
3

2) ما ناتج هذا الكود؟

query.sql
DO $$DECLARE n int;BEGIN  SELECT id INTO STRICT n FROM customers WHERE city = 'تبوك';EXCEPTION WHEN no_data_found THEN  RAISE NOTICE 'لا عملاء من تبوك';END $$;SELECT count(*) FROM customers WHERE city = 'تبوك';
الناتج الصحيح:
النتيجة · صف واحد
count
0
أجب عن الأسئلة ثم اضغط «صحّح ورقتي».

📝 معلم؟ أرسل ملاحظة للمؤلف عن هذا الدرس