AIX上でのisqlから呼び出されたSybaseのストアドプロシージャ:リターン・コードを処理する方法
-
23-08-2019 - |
質問
私は、Sybaseのストアドプロシージャを実行するためにISQLを使用してAIXのバッチジョブを持っています。ストアドプロシージャは、特定の条件下で、エラーコードを返しています。 ISQLは、AIXスクリプトにそのリターンコードを渡すために私がしたいと思います。
私はISQL内ストアドプロシージャのリターンコードをキャプチャすることができ、または私はいくつかの種類の出力ファイルを書いて、私のAIXスクリプトはそれをチェックしていなければならないのですか?
ここでisqlコマンドは次のようになります。これは、Kornシェル・スクリプト内で実行している。
isql -D$database -S$server -U$userId -P$password << EOF
EXEC MY_STORED_PROC $AN_INPUT_PARAMETER
go
EOF
解決
私の記憶が正しければ、
、$?
は、コマンドの戻り値に設定されています。
EOF
行の後にこのようなものを追加します:
if [[ $? != 0 ]]; then
print "stored procedure failed"
exit
fi
他のヒント
これはあなたが達成したいとは何ですか?
isql -D$database -S$server -U$userId -P$password << EOF | grep RETVAL | awk -F"=" '{print $2}' | read value
declare @retval int
EXEC @retval = MY_STORED_PROC $AN_INPUT_PARAMETER
SELECT "RETVAL=" + convert(varchar, @retval)
go
EOF
echo "Procedure returned: $value"
所属していません StackOverflow