ストアド プロシージャのリターン コードを取得する際に問題に直面しています。以下で説明するように、isql ステートメントを使用して、korn シェル スクリプトで sybase ストアド プロシージャを呼び出しています。
isql -U ${APPLID} -S{SERVER}> ${sqlMsg} << EOF
use ${DATABASE}
go
exec stored_procedure
go
EOF
returncode=$?
ストアド プロシージャ内でエラーが発生した場合、以下の方法ではキャプチャできません。
if [ $returncode -ne 0 ]
then
print "failed"
fi
次のようなストアドプロシージャ内でreturnステートメントを使用してみました
return (1)
しかし、これは私に期待した結果を与えませんでした。リターンコードをエコーすると、ステータスを 1 として返した後でも 0 としてエコーされました。SQL ログに 1 としてステータスが返されました。