الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Featured Replies

بتاريخ:

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;



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;
بتاريخ:
  • كاتب الموضوع

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

بتاريخ:

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

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

بتاريخ:
  • كاتب الموضوع

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

بتاريخ:

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

ضع 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;



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

بتاريخ:
  • كاتب الموضوع

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

بتاريخ:
  • كاتب الموضوع

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

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

60356[/snapback]




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

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

بتاريخ:

هذا الكود الجديد ..
التغيير هو مكان اعطاء المتغيرات 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;

بتاريخ:
  • كاتب الموضوع

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

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

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

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

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

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

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.