CREATE OR REPLACE PROCEDURE P_DUP_DEL_CREATE_TAB IS
BEGIN
CREATE OR REPLACE TABLE T_DUPLICATE_TABLE (
F_NUMBER NUMBER(2),
S_NUMBER NUMBER(1),
CONSTRAINT ID PRIMARY KEY (F_NUMBER, S_NUMBER)
);
END P_DUP_DEL_CREATE_TAB;
我不知道為什么它會給我這個錯誤:
錯誤(3,3):PLS-00103:找到符號“CREATE”而不是以下之一:(開始 case 宣告退出 goto if ...
我嘗試使用反斜杠,但它并沒有解決問題,有什么幫助嗎?
uj5u.com熱心網友回復:
不能在 PL/SQL 中使用 DDL 陳述句。您需要使用EXECUTE IMMEDIATE
且不能使用CREATE OR REPLACE
:
CREATE OR REPLACE PROCEDURE P_DUP_DEL_CREATE_TAB
IS
TABLE_DOES_NOT_EXIST EXCEPTION;
PRAGMA EXCEPTION_INIT(TABLE_DOES_NOT_EXIST, -942);
BEGIN
EXECUTE IMMEDIATE 'TRUNCATE TABLE T_DUPLICATE_TABLE';
EXCEPTION
WHEN TABLE_DOES_NOT_EXIST THEN
EXECUTE IMMEDIATE 'CREATE TABLE T_DUPLICATE_TABLE (
F_NUMBER NUMBER(2),
S_NUMBER NUMBER(1),
CONSTRAINT ID PRIMARY KEY (F_NUMBER, S_NUMBER)
)';
END P_DUP_DEL_CREATE_TAB;
/
db<>在這里擺弄
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/457515.html
上一篇:如何向物件添加約束