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

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

صورة
- - - - -

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


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

#1 محمد سعيد

محمد سعيد

    عضو مميز

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

تاريخ المشاركة 15 February 2006 - 12:36 AM

Declare V_ename varchar2(30);
Begin
Select ename into v_ename From EmpASLI;
DBMS_output.put_line('Data Retrieval Completed');
Exception
When Too_Many_Rows then
DBMS_output.put_line(' There are many Rows ');
INSERT INTO MY_ERRORS
VALUES(SYSDATE,SQLCODE,SQLERRM);
END;
/
SELECT * FROM MY_ERRORS;[code=auto:0]

Declare V_ename varchar2(30);
Begin
Select ename into v_ename From EmpASLI;
DBMS_output.put_line('Data Retrieval Completed');
Exception
When Too_Many_Rows then
DBMS_output.put_line(' There are many Rows ');
INSERT INTO MY_ERRORS
VALUES(SYSDATE,SQLCODE,SQLERRM);
END;
/
SELECT * FROM MY_ERRORS;

#2 محمد سعيد

محمد سعيد

    عضو مميز

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

تاريخ المشاركة 15 February 2006 - 12:45 AM

السلام عليكم
انا اسف ان الكود تكرر هو الكود نهايته END
بدون جملة SELECT والمشكلة هى انه يرفض عمل INSERT

#3 h_elshawaf

h_elshawaf

    مشترك

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

تاريخ المشاركة 15 February 2006 - 03:03 PM

السلام عليكم يا أخى

لأنه بالفعل جملة select رجعت أكتر من row
وبكده انت بتعمل insert لأكتر من row فى نفس الجملة .
جملة insert بتدخل row by row

متى يبلغ البنيان يوما تمامه
إذا كنت تبنيه وغيرك يهدمه
لو كان سهما واحدا لإتقيته
ولكنه سهم وثان وثالث

#4 محمد سعيد

محمد سعيد

    عضو مميز

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

تاريخ المشاركة 16 February 2006 - 01:49 AM

السلام عليكم اخ الشواف
انا اعلم ان جملة الselect هتعمل error والمقصود هنا ان ال error يتم عمل insert له فى جدول my_errors

#5 dubainet

dubainet

    عضو

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

تاريخ المشاركة 16 February 2006 - 09:08 AM

السلام عليكم ..

ضع sqlerrm و sqlcode في متغيرات .. ومن ثم ضع هذه المتغيرات في جملة Insert لجدول الاخطاء ..

مثال:
 Declare
       V_col2 varchar2(30);
       v_sqlerrm varchar2(100):= sqlerrm;
       v_sqlcode varchar2(40):= sqlerrm;
 Begin
      Select col2 into v_col2 From gt_tab1;
      DBMS_output.put_line('Data Retrieval Completed');

 Exception
      When Too_Many_Rows then
      DBMS_output.put_line(' There are many Rows ');
      INSERT INTO gt_ERRORS VALUES (SYSDATE, v_SQLCODE, v_SQLERRM);

 END;

انشالله يشتغل معاك

#6 محمد سعيد

محمد سعيد

    عضو مميز

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

تاريخ المشاركة 16 February 2006 - 11:24 PM

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

#7 محمد سعيد

محمد سعيد

    عضو مميز

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

تاريخ المشاركة 17 February 2006 - 05:33 PM

السلام عليكم
الكود يعمل تمام لكن بيعمل INSERT لرقم 0صفر ليس لرقم الERROR

#8 dubainet

dubainet

    عضو

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

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

السلام عليكم
الكود يعمل تمام لكن بيعمل INSERT لرقم 0صفر ليس لرقم الERROR

عرض المشاركة


لم استخدم الـ sqlcode من قبل ..
فما هو الرقم المتوقع ان يظهره بدل الصفر ؟

#9 محمد سعيد

محمد سعيد

    عضو مميز

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

تاريخ المشاركة 21 February 2006 - 09:34 AM

السلم عليكم
الرقم المتوقع هورقم الحطا)sql code
والنص هو نص رسالة الخطأ sqlerrm

#10 dubainet

dubainet

    عضو

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

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

هذا الكود الجديد ..
التغيير هو مكان اعطاء المتغيرات v_sqlerrm و v_sqlcode قيم الخطأ ورقمه .. فتم وضعه في الـ exception

جربه الان

 Declare
       V_col2 varchar2(30);
       v_sqlerrm varchar2(100);
       v_sqlcode varchar2(40);
 Begin
      Select col2 into v_col2 From gt_tab1;
      DBMS_output.put_line('Data Retrieval Completed');
 Exception
      When Too_Many_Rows then
      DBMS_output.put_line(' There are many Rows ');
      v_sqlerrm := sqlerrm;
      v_sqlcode := sqlcode;
      INSERT INTO gt_ERRORS VALUES (SYSDATE, v_SQLCODE, v_SQLERRM);
 END;


#11 محمد سعيد

محمد سعيد

    عضو مميز

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

تاريخ المشاركة 21 February 2006 - 11:21 PM

الكود شغال تمام جزاكم الله خيرا