Как захватить последнее возвращенное значение из сеанса SQL в сценарии Unix?

Я вызываю процедуру из сценария оболочки, в моей процедуре есть параметр out, который, в случае любой ошибки, будет возвращать "2". Мой вопрос: как мне захватить это последнее возвращенное значение / строку в среде Unix?, мне нужно прекратить мою хост-программу с выходом 1 на основе возвращаемого значения "2". Любые предложения будут полезны.

1 ответ

Вы можете напрямую назначить выходное значение переменной оболочки.

Или, альтернативно, вы можете вызвать процедуру 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 будет иметь выходное значение процедуры. Используя обратные пометки, выполнит и назначит вывод из sqlplus переменной оболочки.

Другие вопросы по тегам