2015-04-04 7 views
1

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

ответ

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 переменной оболочки.

+0

Это то же самое, что я делаю. Но проблема в том, что моя процедура вернет много команд вывода СУБД после 'echo $ out_variable' и, наконец, вернет код возврата в моем журнале, не могли бы вы помочь мне с синтаксис, как grep o_val из $ out_variable. – user3152869

 Смежные вопросы

  • Нет связанных вопросов^_^