DB2 Version 9.7 for Linux, UNIX, and Windows

コマンド行プロセッサーの戻りコード

コマンド行プロセッサーはコマンドの処理または SQL ステートメントの処理を終了すると、 戻り (または終了) コードを戻します。 これらのコードは、このコマンド行から CLP 関数を実行しているユーザーには意識されませんが、 これらの関数をシェル・スクリプトから実行した場合は、コードを検索することができます。

例えば、次の B シェル・スクリプトは、 GET DATABASE MANAGER CONFIGURATION コマンドを実行してから、 CLP 戻りコードを検査します。
   db2 get database manager configuration
   if [ "$?" = "0" ]
   then echo "OK!"
   fi
戻りコードは以下のいずれかになります。
コード
説明
0
DB2® コマンドまたは SQL ステートメントが正常に実行されました。
1
SELECT または FETCH ステートメントが行を戻しませんでした。
2
DB2 コマンドまたは SQL ステートメントからの警告です。
4
DB2 コマンドまたは SQL ステートメント・エラーです。
8
コマンド行プロセッサーのシステム・エラーです。

ユーザーが対話式モードでステートメントを実行しているとき、 または入力を (-f オプションを使用して) ファイルから読み込んでいるときは、 コマンド行プロセッサーは戻りコードを戻しません。

戻りコードを使用できるのは、ユーザーが対話式モードを終了した後、または入力ファイルの処理が終了したときだけです。 この場合、戻りコードは、 その時点までに実行された個々のコマンドまたはステートメントから戻された個別のコードの論理和になります。

例えば、ユーザーが対話式モードでコマンドを発行した結果が戻りコード 0、1、および 2 になった場合、 戻りコード 3 はユーザーが対話式モードを終了した後で戻されます。 個々のコード 0、1、および 2 は戻されません。 戻りコード 3 によって、対話式モード処理中に、1 つ以上のコマンドが 1 を戻し、 1 つ以上のコマンドが 2 を戻したことがユーザーに通知されます。

戻りコード 4 になるのは、DB2 コマンドまたは SQL ステートメントが負の SQLCODE を戻したときです。 戻りコード 8 になるのは、コマンド行プロセッサーでシステム・エラーが起きたときだけです。

コマンドが入力ファイルからまたは対話式モードで発行され、 かつコマンド行プロセッサーでシステム・エラーが起きた場合 (戻りコード 8)、 コマンドの実行は直ちに停止されます。 1 つ以上の DB2 コマンドまたは SQL ステートメントがエラーで終了した場合 (戻りコード 4)、 -s (コマンド・エラー時の実行の停止) オプションが設定されていると、 コマンドの実行が停止します。 このオプションが設定されていなければ、コマンドの実行は継続します。