如何从unix脚本中的sql会话中捕获最后返回的值?

时间:2015-04-04 09:32:47

标签: unix oracle-apps oracle-application-server

我从shell脚本调用一个过程,我的过程有一个out参数,如果出现任何错误,最后会返回'2'。我的问题是如何在unix环境中捕获最后返回的值/行? 。我需要根据返回值“2”终止我的主机程序退出1。 任何建议都会有所帮助。

1 个答案:

答案 0 :(得分:0)

您可以直接将输出值分配给shell变量。

或者,或者,您可以在SQL * Plus中调用PL / SQL过程并将OUTPUT参数的值存储在本地文件中。然后在shell脚本中grep从文件中获取所需的值。

例如,

out_variable=`sqlplus -s $conn_string <<EOF
SET SERVEROUTPUT ON SIZE 1000000
SET FEEDBACK OFF
whenever sqlerror exit 1;
variable o_val number;

EXEC myproc(:o_val);
EOF`

因此,out_variable将具有该过程的输出值。使用反引号,将执行并将sqlplus的输出分配给shell变量。