コマンド行プロセッサーはコマンドの処理または SQL ステートメントの処理を終了すると、 戻り (または終了) コードを戻します。 これらのコードは、このコマンド行から CLP 関数を実行しているユーザーには意識されませんが、 これらの関数をシェル・スクリプトから実行した場合は、コードを検索することができます。
db2 get database manager configuration
if [ "$?" = "0" ]
then echo "OK!"
fi
ユーザーが対話式モードでステートメントを実行しているとき、 または入力を (-f オプションを使用して) ファイルから読み込んでいるときは、 コマンド行プロセッサーは戻りコードを戻しません。
戻りコードを使用できるのは、ユーザーが対話式モードを終了した後、または入力ファイルの処理が終了したときだけです。 この場合、戻りコードは、 その時点までに実行された個々のコマンドまたはステートメントから戻された個別のコードの論理和になります。
例えば、ユーザーが対話式モードでコマンドを発行した結果が戻りコード 0、1、および 2 になった場合、 戻りコード 3 はユーザーが対話式モードを終了した後で戻されます。 個々のコード 0、1、および 2 は戻されません。 戻りコード 3 によって、対話式モード処理中に、1 つ以上のコマンドが 1 を戻し、 1 つ以上のコマンドが 2 を戻したことがユーザーに通知されます。
戻りコード 4 になるのは、DB2 コマンドまたは SQL ステートメントが負の SQLCODE を戻したときです。 戻りコード 8 になるのは、コマンド行プロセッサーでシステム・エラーが起きたときだけです。
コマンドが入力ファイルからまたは対話式モードで発行され、 かつコマンド行プロセッサーでシステム・エラーが起きた場合 (戻りコード 8)、 コマンドの実行は直ちに停止されます。 1 つ以上の DB2 コマンドまたは SQL ステートメントがエラーで終了した場合 (戻りコード 4)、 -s (コマンド・エラー時の実行の停止) オプションが設定されていると、 コマンドの実行が停止します。 このオプションが設定されていなければ、コマンドの実行は継続します。