بتاريخ: 6 مارس 200818 سنة comment_124041 أرجو من ذوي الخبره توضيح الخطأ الذي أقع فيهمع فائق الشكر والتقديرالخطأ موجود في الملف المرفق أيضا 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 تقديم بلاغ
بتاريخ: 13 أبريل 200818 سنة comment_126546 الخطا بالكود هو بشرط جملة SELECT لازم تكتب where tabtype like 'table' و ليس tabtype='table' تقديم بلاغ
بتاريخ: 13 أبريل 200818 سنة comment_126568 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) ASCURSOR_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;/ تم تعديل 13 أبريل 200818 سنة بواسطة mrashaideh تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.