当我运行此查询时
DECLARE
num NUMBER;
BEGIN
SELECT COUNT(*) INTO num FROM user_all_tables WHERE TABLE_NAME=upper('DatabaseScriptLog')
;
IF num < 1 THEN
CREATE TABLE DatabaseScriptLog
(ScriptIdentifier VARCHAR(100) NOT NULL,
ScriptType VARCHAR(50),
StartDate TIMESTAMP,
EndDate TIMESTAMP,
PRIMARY KEY (ScriptIdentifier)
);
END IF;
END;
Run Code Online (Sandbox Code Playgroud)
执行上述操作时,我得到以下信息:
PLS-00103:遇到以下其中一项时遇到符号"CREATE":
如果循环mod为空pragma raise返回选择更新,则使用<< close current delete delete fetch lock insert open rollback
savepoint set sql execute commit forall merge pipe 06550. 00000 - "line%s,column%s:\n %s"*原因:通常是PL/SQL编译错误.
Thi*_*ilo 10
您不能运行这样的DDL语句.您需要使用动态SQL(EXECUTE IMMEDIATE).
IF num < 1 THEN
EXECUTE IMMEDIATE 'CREATE TABLE DatabaseScriptLog (ScriptIdentifier VARCHAR(100) NOT NULL, ScriptType VARCHAR(50), StartDate TIMESTAMP, EndDate TIMESTAMP, PRIMARY KEY (ScriptIdentifier))'
END IF;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6816 次 |
最近记录: |