[user@nzhost nz]$ nzsql -f mytest.sql
nzsql:mytest.sql:1: ERROR: Relation 'T11' does not exist
[user@nzhost nz]$ echo $?
2
[user@nzhost nz]$ nzsql -c "select * from t11"
ERROR: Relation 'T11' does not exist
[user@nzhost nz]$ echo $?
255
nzsql -f コマンドは、ファイル内のすべてのステートメントを実行します。 照会でエラーが検出されたときに nzsql コマンドを停止して終了するには、コマンド行に -v ON_ERROR_STOP=1 を指定します。 照会が失敗する前に、正常に終了した照会があった場合は、終了コードが 1 になります。最初の照会が失敗した場合は、終了コードが 2 になります。
<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 ブロックを設定解除するためのコマンドを組み込まなかった場合は、ブロックがファイルの終わりで終了します。