Я вызываю процедуру из сценария оболочки, моя процедура имеет параметр out, который, наконец, вернет «2» в случае какой-либо ошибки. Мой вопрос: как я могу захватить это последнее возвращаемое значение/строку в среде unix? , Мне нужно завершить мою хост-программу с выходом 1 на основе возвращаемого значения «2». Любые предложения помогут.Как захватить последнее возвращаемое значение из sql-сессии в сценарии unix?
1
A
ответ
0
Вы можете напрямую назначить выходное значение переменной оболочки.
Или, альтернативно, вы можете вызвать процедуру PL/SQL в SQL * Plus и сохранить значение параметра OUTPUT в локальном файле. А затем в вашем сценарии оболочки 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
будет иметь выходное значение процедуры. Использование backticks, будет выполнять и назначать вывод из sqlplus переменной оболочки.
Это то же самое, что я делаю. Но проблема в том, что моя процедура вернет много команд вывода СУБД после 'echo $ out_variable' и, наконец, вернет код возврата в моем журнале, не могли бы вы помочь мне с синтаксис, как grep o_val из $ out_variable. – user3152869