2016-12-06 137 views
0

注意:使用Oracle SQL Developer ::時沒有這個問題 - 但這裏不是標準。所以,我必須找到一種方法,在PL/SQL Developer來做到這一點PL/SQL Developer中的PLS-00103錯誤

當嘗試使用PL/SQL開發人員(PL/SQL開發人員 - 程序)來動態刪除表,然後創建一個使用新的create語句我始終如一地碰上該錯誤:
PLS-00103:出現符號「/」符號「/」被忽略PLSQL

這是由於這樣的「/」在動態sql的端部。

如果我刪除了「/」從最終我收到一個錯誤: 出現符號「CREATE」

什麼是避開PL/SQL Developer中這個錯誤的最好方法是什麼?

謝謝:

DECLARE 
     VE_TABLENOTEXISTS EXCEPTION; 
PRAGMA EXCEPTION_INIT(VE_TABLENOTEXISTS, -942); 


    PROCEDURE DROPTABLE(PIS_TABLENAME IN VARCHAR2) IS 
       VS_DYNAMICDROPTABLESQL VARCHAR2(1024); 
        BEGIN 
         VS_DYNAMICDROPTABLESQL := 'DROP TABLE ' || PIS_TABLENAME; 
        EXECUTE IMMEDIATE VS_DYNAMICDROPTABLESQL; 

        EXCEPTION 
         WHEN VE_TABLENOTEXISTS THEN 
          DBMS_OUTPUT.PUT_LINE(PIS_TABLENAME || ' NOT EXIST, SKIPPING....'); 
         WHEN OTHERS THEN 
          DBMS_OUTPUT.PUT_LINE(SQLERRM); 
        RAISE; 
        END DROPTABLE; 

    BEGIN 
     DROPTABLE('foo.foo_table'); 
END DROPTABLE; 
/

CREATE TABLE foo.foo_table AS 
(
SELECT STUFF, MORE_STUFF FROM not_foo_table 
) 
; 

SELECT * FROM foo.foo_table 
; 

回答

1

我有太多PLSQL開發。 我試着按照你發佈的方式來編譯你的過程,並且我得到了同樣的錯誤,但是如果我在「/」之前刪除空格,它就可以正常工作;像它不承認「/」。

所以,我建議你可以改變:

END DROPTABLE; 
/

對於這一點:

END DROPTABLE; 
/
+0

哈哈哈!空間!我從來沒有在SQl空間導致此麻煩之前。 – BGDev