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

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

صورة
- - - - -

ما الخطأ فى هذا ال LOOP


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

#1 محمد سعيد

محمد سعيد

    عضو مميز

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

تاريخ المشاركة 25 January 2006 - 06:03 PM

DECLARE

V NUMBER;

X VARCHAR2(22):='ACOUNTING';

Y VARCHAR2(32):='DALLAS';

S NUMBER:=1;

BEGIN

S:=V+10;

SELECT MAX(DEPTNO) INTO V FROM DEPT;

LOOP

INSERT INTO DEPT(DEPTNO,DNAME,LOC)

VALUES((S+V),X,Y);

EXIT WHEN S=80;

END LOOP;

END;
/

#2 RUN_into

RUN_into

    عضو

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

تاريخ المشاركة 26 January 2006 - 09:06 AM

جرب هذا اخوي
 DECLARE
V NUMBER;
X VARCHAR2(22):='ACOUNTING';
Y VARCHAR2(32):='DALLAS';
S NUMBER:=1;
BEGIN
SELECT  nvl(MAX(DEPTNO),0) INTO V FROM DEPT;
LOOP
S := V + 10;
INSERT INTO DEPT(DEPTNO,DNAME,LOC)
VALUES((S+V),X,Y);
 Dbms_Output.Put_Line(s);
 v:= v +1;
EXIT WHEN S= 80;
END LOOP;
END;


#3 محمد سعيد

محمد سعيد

    عضو مميز

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

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

لم يعمل اخى يعطى رسالة خطأ value larger than column

#4 BoMazen

BoMazen

    عضو

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

تاريخ المشاركة 27 January 2006 - 08:19 PM

السلام عليكم

أخي العزيز جرب هذا الكود


DECLARE
V NUMBER;
X VARCHAR2(22):='ACOUNTING';
Y VARCHAR2(32):='DALLAS';
BEGIN
SELECT MAX(DEPTNO) INTO V FROM DEPT;
LOOP
V:=V+10;
INSERT INTO DEPT(DEPTNO,DNAME,LOC)
VALUES((V),X,Y);
EXIT WHEN V=80;
END LOOP;
END;
/

#5 m_dba

m_dba

    عضو نشط

  • الأعضــاء
  • 238 مشاركة
  • الاسم الأول:Ahmad
  • اسم العائلة:Zaki
  • البـلـد: Country Flag

تاريخ المشاركة 27 January 2006 - 08:37 PM

جرب هذا اخي اذا فشل الكود السابق انا ما في عندي sql عشان اجرب في الوقت الحالي مع الاسف
DECLARE
V NUMBER:=0;
X VARCHAR2(22):='ACOUNTING';
Y VARCHAR2(32):='DALLAS';
BEGIN
SELECT MAX(DEPTNO) INTO V FROM DEPT;
LOOP
V:=V+10;
INSERT INTO DEPT(DEPTNO,DNAME,LOC)
VALUES((V),X,Y);
EXIT WHEN V=80;
END LOOP;
END;
امسح ذنوبك في دقيقتين - بس دقيقتين وشوف

http://www.shbab1.com/2minutes.htm

#6 m_almarei

m_almarei

    عضو نشط

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

تاريخ المشاركة 31 January 2006 - 02:24 PM

هذا الكود بعد التجربة صحيح 100% انشاء الله

كان لديك خطا ال infinity loop وايضا انك تعمل استخدام عمليات حسابية

على قيمة v وهي لاتزال null وانت لم تعطها قيمة ابتدائية فكانت الاضافة للبرايمري كي null

ايضا (s+v) ليس لها داعي الآن

اذا لم يلبي هذا الحل احتياجك خبرني وانشاء الله نحن بالعون

DECLARE
V NUMBER;
X VARCHAR2(22):='ACOUNTING';
Y VARCHAR2(32):='DALLAS';
S NUMBER:=1;
BEGIN

SELECT MAX(DEPTNO) INTO V FROM DEPT;
S:=V+10;
LOOP
INSERT INTO DEPT(DEPTNO,DNAME,LOC)
VALUES(S,X,Y);
EXIT;
END LOOP;
END;

قال تعالى: (وفوق كل ذي علم عليم)

قال تعالى: (وقل رب زدني علما)

--------------------------------------------------------------------------------------------
m_almarei@hotmail.com

#7 محمد سعيد

محمد سعيد

    عضو مميز

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

تاريخ المشاركة 01 February 2006 - 12:39 PM

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