如何讓Sqlplus可以取得Linux Shell的return結果


可以利用Shell將return值寫入檔案A,
但是檔案A的內容是定義一個帶有return值的Sqlplus變數,
當我們用Sqlplus去執行檔案A時,就會產生一個自訂的變數。

範例:

test.sh的內容,其中define是Sqlplus定義變數的方法:
#!/bin/sh
v_txt="hello"
echo "define v_test=$v_txt" > $HOME/a.sql

以Sqlplus去執行:
SQL> ! $HOME/test.sh
SQL> @$HOME/a.sql

當執行test.sh時,會將define v_test=hello寫入a.sql
當執行a.sql時,會定義一個變數v_test
接者就可以以Sqlplus來存取變數v_test
SQL> select '&VAR_TEST' A from dual;
或者
SQL> select 'hello' A from dual;