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

ما الخطا فى هذا البلوك


محمد سعيد

Recommended Posts

SET SERVEROUTPUT ON;
DECLARE
X VARCHAR2(34):='SALES';
Y VARCHAR2(233):='DALLAS';
Z NUMBER(2):=1;
V NUMBER(2);
BEGIN
SELECT MAX(DEPTNO) INTO V
FROM DEPT
WHERE LOC=Y;
LOOP
INSERT INTO DEPT(DEPTNO,DNAME,LOC)
VALUES((V+Z),X,Y)
EXIT WHEN Z>3;
END LOOP;
END;

رابط هذا التعليق
شارك

أخي محمد
بالنسبة للخطأ في البرنامج فإن الدوران هو عبارة عن دوران غير نهائي أي
INFINITE LOOP
حيث أن قيمة المتغير Z لا تتغير..
إذا أردتها أن تقرأ من الجدول فعليك باستخدام ال CURSOR

أما إذا كانت قيمة (MAX(DEPTNO أكبر من 2 فإنه سوف يعمل INSERT لمرة واحدة

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله وبركاته
كلام الاخ/محمد1980 صحيح جدا ولتعديل هذا البلوك ارجو اضافة الجملة الاتيةz=z+1 قبل جملة end loop حتى يمكن للدوران ان يتم يشكل صحيح
وجزاكم الله خيرا

رابط هذا التعليق
شارك

  • بعد 2 أسابيع...

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

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

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

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

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