تقييم الدرس 17
معاملات الإجراء: IN و OUT و INOUT
أجب عن الأسئلة ثم اضغط «صحّح ورقتي» في آخر الصفحة. ← العودة إلى الدرس
أسئلة التقييم
تقييم الدرس 17: معاملات الإجراء: IN و OUT و INOUT. إجاباتك تُحفظ تلقائيًّا على هذا الجهاز؛ أجب ثم اضغط «صحّح ورقتي».
1السؤال الأول: اختر الإجابة الصحيحة
1) الاتجاه الافتراضي للمعامل:
2) ما الذي يطبعه هذا الكود؟
CREATE PROCEDURE dbl(INOUT x int) LANGUAGE plpgsql AS $$ BEGIN x := x * 2; END $$;DO $$ DECLARE v int := 10; BEGIN CALL dbl(v); RAISE NOTICE '%', v; END $$;
3) في
Oracle يُكتب معامل خارج:4) ماذا تُرجع دالة لها معاملا
OUT؟5)
p(1, pct => 20) يعني:2السؤال الثاني: صح أم خطأ
1) تغيير معامل
IN داخل الإجراء يغيّر متغير المستدعي.الصواب: خطأ
2) يمكن أن يكون للإجراء أكثر من معامل
OUT.الصواب: صح
3) المعامل الذي له
DEFAULT يمكن حذفه عند الاستدعاء.الصواب: صح
4)
MySQL يدعم تسمية المعاملات بـ =>.الصواب: خطأ
5) داخل كتلة نستقبل
OUT في متغير.الصواب: صح
3السؤال الثالث: أكمل الفراغات من القائمة المنسدلة
1) المعامل الذي يدخل ويخرج يُعرّف بـ .
الإجابة: INOUT
2) لجعل المعامل اختياريًّا نضيف ثم قيمته.
الإجابة: DEFAULT
3) في
MySQL: CALL p(1, @v); ثم الإجابة: SELECT @v;
4السؤال الرابع: أسئلة عملية
1) الإجراء يطبع عدد طلبات خالد. ما ناتج الاستعلام الأخير الذي يتحقق منه؟
CREATE PROCEDURE customer_stats( IN cid int, OUT n_orders int, OUT spent numeric)LANGUAGE plpgsqlAS $$BEGIN SELECT count(DISTINCT o.id), coalesce(sum(i.qty * i.unit_price), 0) INTO n_orders, spent FROM orders o LEFT JOIN order_items i ON i.order_id = o.id WHERE o.customer_id = cid;END;$$;DO $$DECLARE n int; s numeric;BEGIN CALL customer_stats(2, n, s); RAISE NOTICE '%', n;END $$;SELECT count(*) FROM orders WHERE customer_id = 2;
الناتج الصحيح:النتيجة · صف واحد
| count |
|---|
| 2 |
2) ما ناتج هذا الكود؟
CREATE FUNCTION mm(OUT a int, OUT b int) LANGUAGE sql AS $$ SELECT min(stock), max(stock) FROM products $$;SELECT b FROM mm();
الناتج الصحيح:النتيجة · صف واحد
| b |
|---|
| 200 |
أجب عن الأسئلة ثم اضغط «صحّح ورقتي».