コマンド解説書

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

コマンド行プロセッサーはコマンドの処理または 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 (コマンド・エラー時の実行の停止) オプションが設定されていると、 コマンドの実行が停止します。 このオプションが設定されていなければ、コマンドの実行は継続します。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]