小编典典

在Oracle SQL中是否有类似“不存在的创建序列”之类的东西?

sql

对于使用Oracle 8 DB的应用程序,我提供了一个SQL脚本来设置触发器,序列等内容,可以将其复制并粘贴到SQL * Plus中。如果我要创建的序列已经存在,我希望脚本不会因错误而停止。对于触发器,可以使用“创建或替换触发器…”轻松完成此操作,但是对于序列,此操作不起作用。我还尝试过“如果不存在mysequence,则创建序列…”,但它也没有。是否有其他选择?

或者,如果不可能,是否有办法在不存在mysequence的情况下执行“丢弃序列mysequence”而不用SQL * Plus中止脚本?


阅读 198

收藏
2021-04-22

共1个答案

小编典典

如果您确定脚本将始终在SQL * Plus下运行,则可以在CREATE SEQUENCE语句后加上指令以继续执行错误操作:

WHENEVER SQLERROR CONTINUE
-- create sequences here, ignoring errors
WHENEVER SQLERROR EXIT SQL.SQLCODE

请注意,在创建序列语句中是否还有其他错误(权限问题,语法错误等),它们将被忽略。

2021-04-22