我从shell脚本调用一个过程,我的过程有一个out参数,如果出现任何错误,最后会返回'2'。我的问题是如何在unix环境中捕获最后返回的值/行? 。我需要根据返回值“2”终止我的主机程序退出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变量。