Windows システムの nzsql の終了コード
Windows のコマンド・プロンプトでは、nzsql コマンドの終了コードによって、SQL コマンドの実行ステータスに関する情報が提供されます。
nzsql プロンプトで対話式に、またはスクリプト (nzsql -f) を使用して、照会を実行すると、コマンドから以下のいずれかの終了コードが返されます。
- 0
- すべての照会が正常に終了しました。
- 1
- 1 つ以上の照会が正常に終了しました。
- 2
- すべての照会が失敗しました。
例えば、mytest.sql ファイルに、次のような無効な表 (T11) から選択する照会が含まれている場合などです。
d:\win\nzsql_win32> nzsql.exe -host nzhost -c "select * from t11"
ERROR: relation does not exist SYSTEM.ADMIN.T11
[user@nzhost nz]$ echo %errorlevel%
-1nzsql
-cコマンドでクエリーを実行する場合、終了コードは次のようになる:
- 0
- 照会は成功しました
- -1
- SQL は失敗しました (構文の問題、認証の失敗、許可の問題)
- -2
- 接続失敗
- -3
- ユーザーが要求を取り消しました
- -4
- セッションが終了しました
注意:Cygwin UNIXエミュレータ環境でWindowsシステムから'nzsqlを実行している場合、終了コードはこれらのエラーのいずれに対しても127である。
nzsql -fコマンドは、ファイル内のすべてのステートメントを実行する。 照会でエラーが検出されたときに nzsql コマンドを停止して終了するには、コマンド行に -v ON_ERROR_STOP=1 を指定します。 照会が失敗する前に、正常に終了した照会があった場合は、終了コードが 1 になります。最初の照会が失敗した場合は、終了コードが 2 になります。
照会ファイル内に、次の例のような ON_ERROR_STOP ブロックを作成したとします。
<initial SQL queries>
\set ON_ERROR_STOP ON
<queries inside block>
\unset ON_ERROR_STOP
<trailing SQL queries>ON_ERROR_STOP ブロックがあるときには、初期 SQL コマンド・セクションまたは末尾の SQL コマンド・セクションでの照会の正常終了または失敗は無視されます。 このブロック内のコマンドの正常終了または失敗によって、終了値が決まります。 終了コードは、0 (ブロック内のすべての照会が正常に終了した)、1 (照会の一部が正常に終了した)、または 2 (ブロック内のすべての照会が失敗した) です。 ON_ERROR_STOP ブロックを設定解除するためのコマンドを組み込まなかった場合は、ブロックがファイルの終わりで終了します。