AIX上でのisqlから呼び出されたSybaseのストアドプロシージャ:リターン・コードを処理する方法

StackOverflow https://stackoverflow.com/questions/888066

質問

私は、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"
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top