处理Unix shell脚本中的ORA错误

时间:2016-02-10 10:47:31

标签: shell unix

我正在尝试执行一个实际运行SQL并返回值的脚本,写入CSV文件并发送它。

/data/oracle/product/10.2.0.4/bin/sqlplus -s user_name / password @ DBName @ / export / home / script / abc.sql

我希望在运行SQL部分时出现任何错误时捕获错误,但它总是挂起。

我试过把"(($?))&& ((ERRORS + = 1))"在上面的陈述之后但它永远不会达到那条线。

我想在变量ERROR中捕获错误代码并使用错误代码退出。

请帮助

2 个答案:

答案 0 :(得分:1)

你可以把它放在TRY-Catch块下面。请参阅此manual

答案 1 :(得分:0)

为了能够通过shell脚本捕获错误,您必须从SQL中删除错误处理并将脚本设置为回滚并返回错误:

WHERVER OSERROR EXIT 9 ROLLBACK; WHEREVER SQLERROR EXIT SQL.SQLCODE ROLLBACK;