如何使用DDL语句跟踪PL/SQL块?
我正在尝试做这样的事情:
DECLARE TRESULT INTEGER;
BEGIN
SELECT COUNT(1) INTO TRESULT
FROM USER_INDEXES
WHERE INDEX_NAME='IX_SalesmanID';
IF TRESULT > 0 THEN
EXECUTE IMMEDIATE 'DROP INDEX IX_SalesmanID';
END IF;
END;
CREATE INDEX IX_SalesmanID ON Salesmen(SalesmanID);
Run Code Online (Sandbox Code Playgroud)
但是我收到一条错误消息:
Error report:
ORA-06550: line 15, column 1:
PLS-00103: Encountered the symbol "CREATE"
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
Run Code Online (Sandbox Code Playgroud)
不过,我应该在街区之外,对吗?
这是一个非常简化的版本,实际的脚本将检查是否存在许多内容,并删除,重新创建并重复更改许多对象及其许多属性.将它们全部放在动态SQL字符串中并使用EXECUTE IMMEDIATE似乎有点矫枉过正.
在上面的示例中尝试关闭块时,我做了一些简单的错误吗?
谢谢你的帮助.