1
我正在從shell腳本調用一個過程,我的過程有一個out參數,如果有任何錯誤,它將返回'2'。我的問題是如何捕獲unix環境中最後返回的值/行? 。我需要根據返回值「2」以退出1終止我的主機程序。 任何建議都會有幫助。如何在unix腳本中捕獲SQL會話中最後返回的值?
我正在從shell腳本調用一個過程,我的過程有一個out參數,如果有任何錯誤,它將返回'2'。我的問題是如何捕獲unix環境中最後返回的值/行? 。我需要根據返回值「2」以退出1終止我的主機程序。 任何建議都會有幫助。如何在unix腳本中捕獲SQL會話中最後返回的值?
您可以直接將輸出值分配給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變量。
這與我在做的是一樣的,但問題是我的程序會在'echo $ out_variable'之後返回很多DBMS輸出語句並最終返回我的日誌中的返回碼,請你幫助我語法如何從$ out_variable grep o_val。 – user3152869 2015-04-05 15:14:36