الانتقال إلى المحتوى
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.

خطا في Procedure لمسح البيانات من كل الجداول

Featured Replies

بتاريخ:

أرجو من ذوي الخبره توضيح الخطأ الذي أقع فيه

مع فائق الشكر والتقدير
الخطأ موجود في الملف المرفق أيضا



1  CREATE PROCEDURE Del_all IS
 2  CURSOR CUR IS SELECT TNAME FROM TAB WHERE TABTYPE = 'TABLE';
 3  TABLENAME1 TAB.TNAME%TYPE;
 4  BEGIN 5  OPEN CUR;
 6  LOOP
 7  FETCH CUR INTO TABLENAME1; 8  EXIT WHEN CUR %NOTFOUND;
 9  TRUNCATE TABLE TABLENAME1;
10  COMMIT;
11  END LOOP;
12  CLOSE CUR;
13* END Del_all;

Warning: Procedure created with compilation errors.
---------------------------------

SQL> SHOW ERROR;
Errors for PROCEDURE DEL_ALL:

LINE/COL ERROR
-------- -----------------------------------------------------------------
9/10     PLS-00103: Encountered the symbol "TABLE" when expecting one of
        the following:
        := . ( @ % ;
        The symbol ":= was inserted before "TABLE" to continue

.

Error.txt

  • بعد 1 شهر...
بتاريخ:

الخطا بالكود هو بشرط جملة SELECT لازم تكتب where tabtype like 'table' و ليس tabtype='table'

بتاريخ:

dear you can try the following



CREATE or replace PROCEDURE Del_all
IS
CURSOR CUR IS SELECT ' TRUNCATE TABLE '|| table_name ||'' as del_statment FROM user_tables ;
v_statment varchar2(3000);
BEGIN

for rec in cur loop
v_statment := rec.del_statment;
Exec_Sql(v_statment);
END LOOP;
END Del_all;

CREATE OR REPLACE PROCEDURE Exec_Sql(STRING IN VARCHAR2) AS
CURSOR_NAME INTEGER;
RET INTEGER;
BEGIN
CURSOR_NAME := DBMS_SQL.OPEN_CURSOR;
BEGIN
DBMS_SQL.PARSE(CURSOR_NAME, STRING, DBMS_SQL.native);
RET := DBMS_SQL.EXECUTE(CURSOR_NAME);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLCODE||' '||SQLERRM);
DBMS_SQL.CLOSE_CURSOR(CURSOR_NAME);
RAISE;
END
; DBMS_SQL.CLOSE_CURSOR(CURSOR_NAME);
END;
/

تم تعديل بواسطة mrashaideh

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

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

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

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

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

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.