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

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

صورة
- - - - -

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


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

#1 محمد سعيد

محمد سعيد

    عضو مميز

  • الأعضــاء
  • 534 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 04 January 2006 - 11:41 PM

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;

#2 محمد1980

محمد1980

    عضو

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

تاريخ المشاركة 05 January 2006 - 05:34 PM

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

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

#3 seif2000

seif2000

    عضو

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

تاريخ المشاركة 07 January 2006 - 10:52 PM

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

#4 محمد سعيد

محمد سعيد

    عضو مميز

  • الأعضــاء
  • 534 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 20 January 2006 - 07:57 AM

جزاكم الله خيرااااااااااااااا