Skip to Main Content

Japanese

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

シェルからSQLPLUSを呼び出した際のステータスコードについて

865483Dec 15 2011 — edited Dec 15 2011
お世話になります。

シェル(ksh)を使用して、sqlplusからSQL文を発行する処理を作ろうと思っています。

SQL発行時のエラー発生有無をシェル側に返す為、ステータスコード($?)に
値を入れたいと考えていますが、下記方法を試してもステータスコード($?)の値は0のままでした。
・"WHENEVER SQLERROR EXIT FAILURE"を使用する
・PL/SQL側でエラーを感知して、出力引数でフラグを返して、そのフラグをEXITでシェルに返す

ステータスコード($?)に値を設定する手順に不足があるのでしょうか?
SQL*Plus: Release 11.2.0.2.0 Production

-----
【シェル(サンプル)】
PARA1=3

MSG=`sqlplus user_id/pass << EOF
variable numRet number;
exec TEST_EXEC($PARA1,:numRet);
print :numRet;
exit :numRet;
EOF`

echo status:$?
echo MSG:$MSG
-----
【PL/SQL(動作確認用)】
PROCEDURE TEST_EXEC
(
I_INPUT IN NUMBER
, O_OUTPUT OUT NUMBER
) AS
BEGIN

O_OUTPUT := I_INPUT;

END TEST_EXEC;
-----
【実行結果】
status:0
MSG: ~ 略 ~
SQL> SQL> SQL> SQL> SQL> SQL> *3* SQL> Oracl
~ 略 ~
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jan 12 2012
Added on Dec 15 2011
1 comment
7,873 views