【发布时间】:2012-06-27 03:59:17
【问题描述】:
我有一些脚本经常在连接的 SQLPlus 会话中运行。
我需要一种在发生错误时退出脚本的方法, 不会断开或退出 SQLPlus 本身。 100% 的情况下,当发生错误时,连接的 DBA 将需要向会话发出一个或多个命令。 100% 的时间,当发生错误时,稍后在脚本中会有其他 SQLPlus 语句(因此 必须 在BEGIN..END; 之外)不得执行,否则可能会出现严重问题。
注意:如果您建议WHENEVER SQLERROR EXIT,那么您没有阅读上述文字。这将断开并退出 SQLPlus 除了脚本,这是不可接受的行为。
【问题讨论】:
-
有趣的是你为什么不把你的脚本分成一个shell/批处理脚本和使用
whenever sqlerror exit然后shell脚本错误处理来决定是否继续? -
因为在脚本运行之前和/或之后,他们需要执行大量手动操作,包括运行其他脚本,这些脚本特定于情况/环境/数据/等。涉及。这主要是为了修复生产中的问题,当您的网站关闭时,不断被踢出/不得不重新连接比烦人更糟糕。它们不能分解成多个脚本,因为 SQLPlus 命令正在使用 PL/SQL 命令的输出。