PL / SQL Developer中的PLS-00103错误

时间:2016-12-06 17:49:00

标签: plsql plsqldeveloper create-table pls-00103

注意:使用Oracle SQL Developer时没有这个问题:: - 但这不是标准。所以我必须在PL / SQL Developer

中找到一种方法

当试图使用PL / SQL开发人员(PL / SQL Developer - 程序)动态删除表,然后使用create语句创建新表时我一直遇到错误:
PLS-00103:遇到符号“/”符号“/”被忽略的PLSQL

这是由于动态sql末尾的“/”。

如果我从末尾删除“/”,则会收到错误消息: 遇到符号“创建”

在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 个答案:

答案 0 :(得分:1)

我也有PLSQL Developer。 我尝试按照发布它的方式编译你的程序,我得到相同的错误,但如果我删除“/”之前的空格,它工作正常;喜欢它不承认“/".

所以,我建议你改变这个:

END DROPTABLE;
   /

为此:

END DROPTABLE;
/