对于使用Oracle 8 DB的应用程序,我提供了一个SQL脚本来设置触发器,序列等内容,可以将其复制并粘贴到SQL * Plus中。如果我要创建的序列已经存在,我希望脚本不会因错误而停止。对于触发器,可以使用“创建或替换触发器…”轻松完成此操作,但是对于序列,此操作不起作用。我还尝试过“如果不存在mysequence,则创建序列…”,但它也没有。是否有其他选择?
或者,如果不可能,是否有办法在不存在mysequence的情况下执行“丢弃序列mysequence”而不用SQL * Plus中止脚本?
如果您确定脚本将始终在SQL * Plus下运行,则可以在CREATE SEQUENCE语句后加上指令以继续执行错误操作:
WHENEVER SQLERROR CONTINUE -- create sequences here, ignoring errors WHENEVER SQLERROR EXIT SQL.SQLCODE
请注意,在创建序列语句中是否还有其他错误(权限问题,语法错误等),它们将被忽略。