Exit-Codes für nzsql auf Windows-Systemen

In einer Windows-Eingabeaufforderung stellten die Exit-Codes vom nzsql-Befehl Informationen zum Ausführungsstatus der SQL-Befehle bereit.

Wenn Sie Abfragen interaktiv an der nzsql-Eingabeaufforderung oder über ein Script (nzsql -f) ausführen, gibt der Befehl einen der folgenden Exit-Codes aus:
0
Alle Abfragen waren erfolgreich.
1
Mindestens eine Abfrage war erfolgreich.
2
Alle Abfragen sind fehlgeschlagen.
Die Datei mytest.sql enthält z. B. eine Abfrage, die Daten aus einer ungültigen Tabelle (T11) auswählt:
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%
-1
Wenn Sie eine Abfrage mit dem Befehl nzsql -c ausführen, sind die folgenden Exit-Codes möglich:
0
Abfrage erfolgreich
-1
SQL ist fehlgeschlagen (Probleme mit Syntax, fehlgeschlagener Authentifizierung, Berechtigungen)
-2
Verbindung fehlgeschlagen
-3
Benutzerabbruchanforderung
-4
Sitzung wurde beendet
Hinweis: Wenn Sie ' nzsql von einem Windows-System in einer Cygwin-UNIX-Emulatorumgebung ausführen, lautet der Exit-Code für jeden dieser Fehler 127.

Der Befehl " nzsql -f führt alle Anweisungen in der Datei aus. Wenn der nzsql-Befehl gestoppt und beendet werden soll, sobald er einen Fehler bei einer Abfrage feststellt, geben Sie -v ON_ERROR_STOP=1 in der Befehlszeile an. Der Exit-Code ist 1, wenn vor der fehlgeschlagenen Abfrage erfolgreiche Abfragen ausgeführt wurden, oder 2, wenn die erste Abfrage fehlgeschlagen ist.

Sie können einen ON_ERROR_STOP-Block innerhalb einer Abfragedatei erstellen, wie im folgenden Beispiel gezeigt:
<initial SQL queries>
\set ON_ERROR_STOP ON
     <queries inside block> 
\unset ON_ERROR_STOP
<trailing SQL queries>

Der Erfolg oder das Fehlschlagen von Abfragen im anfänglichen oder im nachfolgenden SQL-Befehlsabschnitt werden ignoriert, wenn ein ON_ERROR_STOP-Block vorhanden ist. Der Erfolg oder das Fehlschlagen der Befehle innerhalb des Blocks bestimmt den Exitwert. Die Exit-Codes sind 0 (alle Abfragen im Block waren erfolgreich), 1 (einige Abfragen waren erfolgreich) oder 2 (alle Abfragen im Block sind fehlgeschlagen). Wenn Sie den Befehl zum Aufheben des ON_ERROR_STOP-Blocks nicht angeben, endet der Block am Ende der Datei.