1

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

4

1 回答 1

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 变量。

于 2015-04-04T09:52:46.430 回答