注: Oracle SQL Developer を使用している場合、この問題はありません:: - しかし、ここでは標準ではありません。したがって、PL/SQL Developerでこれを行う方法を見つける必要があります
PL/SQL 開発者 (PL/SQL Developer - プログラム) を使用してテーブルを動的に削除し、create ステートメントを使用して新しいテーブルを作成しようとすると、常に次のエラーが発生します:
PLS-00103: ENCOUNTERED THE SYMBOL "/" THE SYMBOL "/ " PLSQL は無視されました
これは、動的 SQL の末尾にある「/」が原因です。
最後から「/」を削除すると、次のエラーが表示されます: ENCOUNTERED THE SYMBOL "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
;