首页 文章

运行脚本后SQLPlus是否退出?

提问于
浏览
0

我们正在使用CA Workload Control Center(Autosys)运行一个Windows批处理文件,该文件调用另一个调用SQLPlus的批处理文件,其中包含以下内容:

sqlplus用户名/密码%1%2%3

由于这一切都是远程完成的,我无法看到服务器上实际发生了什么 .

我想知道sqlplus文件是否存在但语法无效(比如引用不存在的表)sqlplus提示符会退出并返回批处理文件吗?

我问的原因是因为我正在查看来自Autosys的日志文件并且它显示了SQLPlus调用,它打印出ERROR AT LINE 2:无效表,但之后它没有显示任何其他活动与批处理脚本之后那里有多个回声和文件副本等 . 好像它不会退出SQLPlus呢?

是否有一个parm我需要传递给SQLPlus告诉它退出SQLPlus并在运行SQL脚本后如果失败则返回到调用脚本?

Edit :我们在SQL文件中也使用"WHENEVER SQL ERROR",日志文件显示:

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

但是我仍然期望它应该继续使用Batch脚本的其余部分,但它不是,上面是Autosys在日志中显示的最后一个

2 回答

  • 0

    请参阅SQLPlus指令WHENEVER SQLERROR,它在Oracle文档中描述:

    http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12052.htm

  • 0

    找到解决方案SO Post:

    你可以做sqlplus -l test / Test @mydatabase @ script.sql; -l标志表示它只会尝试连接一次,如果由于任何原因失败将退出而不是提示 . 查看sqlplus - ?的输出,或者查看documentation .

相关问题