0

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

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

由于这一切都是远程完成的,我无法看到服务器上实际发生的情况。

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

我问的原因是因为我正在查看来自 Autosys 的日志文件,它显示进行了 SQLPlus 调用,它在第 2 行打印出错误:无效表,但之后它没有显示批处理脚本的任何其他活动哪里有多个回声和文件副本等。似乎它可能没有退出 SQLPlus?

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

编辑:我们也在 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

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

4

2 回答 2

0

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

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

于 2014-01-15T15:41:01.960 回答
0

找到解决方案 SO Post:

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

于 2014-01-29T20:53:21.070 回答