SQL3600N | Die Option IMMEDIATE CHECKED der Anweisung SET INTEGRITY ist ungültig, da sich die Tabelle "<tabellenname>" nicht im Status 'Überprüfung anstehend' befindet. |
Erläuterung: Die Daten werden nur auf ungültige Integritätsbedingungen hin überprüft, wenn sich die Tabelle im Status 'Überprüfung anstehend' befindet.
Benutzeraktion: Verwenden Sie die Anweisung SET INTEGRITY mit der Option OFF, um die Tabelle in den Status 'Überprüfung anstehend' zu versetzen.
sqlcode: -3600
sqlstate: 51027
SQL3601W | Die Anweisung bewirkte, daß mindestens eine Tabelle automatisch in den Status 'Überprüfung anstehend' gesetzt wurde. |
Erläuterung: Dies kann in zwei Situationen auftreten.
Benutzeraktion: Dies ist eine Warnnachricht. Der Benutzer muß die Anweisung SET INTEGRITY mit der Option IMMEDIATE CHECKED verwenden, um die Integrität aller abhängigen und untergeordneten Tabellen zu prüfen.
sqlcode: +3601
sqlstate: 01586
SQL3602W | Beim Überprüfen der Daten wurden Verstöße gegen Integritätsbedingungen gefunden. Die betreffenden Daten wurden in Ausnahmetabellen übertragen. |
Erläuterung: Es sind Zeilen vorhanden, die gegen Integritätsbedingungen verstoßen, die bei der Ausführung der Anweisung SET INTEGRITY geprüft werden sollten. Diese Zeilen wurden in Ausnahmetabellen versetzt.
Benutzeraktion: Suchen Sie in den Ausnahmetabellen die Zeilen, die gegen die Integritätsbedingungen verstoßen. Diese Zeilen wurden aus der Originaltabelle gelöscht, können aber korrigiert und aus den Ausnahmetabellen wieder zurückgestellt werden.
sqlcode: +3602
sqlstate: 01603
SQL3603N | Beim Überprüfen der Daten durch die Anweisung SET INTEGRITY wurde ein Integritätsverstoß im Zusammenhang mit der Integritätsbedingung "<name>" festgestellt. |
Erläuterung: Es wurde eine Zeile gefunden, die eine für eine Tabelle definierte Integritätsbedingung verletzt, die wiederum zur Überprüfung durch die Anweisung SET INTEGRITY angegeben wurde. Der Name "<name>" ist entweder ein Integritätsbedingungsname oder der Name einer generierten Spalte.
Benutzeraktion: Die Zeile wurde nicht aus der Tabelle gelöscht, da die Option FOR EXCEPTION nicht verwendet wurde.
Die Anweisung SET INTEGRITY sollte beim Überprüfen von Daten mit der Option FOR EXCEPTION verwendet werden. Die Daten können möglicherweise anhand der Informationen aus der/den Ausnahmetabelle(n) korrigiert werden.
sqlcode: -3603
sqlstate: 23514
SQL3604N | Die Ausnahmetabelle "<name-der-ausnahmetabelle>", die der Tabelle "<tabellenname>" in der Anweisung SET INTEGRITY oder im Dienstprogramm LOAD entspricht, hat nicht die richtige Struktur, wurde mit eindeutigen Indizes, Integritätsbedingungen, generierten Spalten oder Auslösern definiert oder befindet sich selbst im Status 'Überprüfung anstehend'. |
Erläuterung: Die Definition einer Ausnahmetabelle zu einer bestimmten Tabelle muß der der Originaltabelle ähnlich sein. Wahlweise auszuführende Spalten für das Dienstprogramm müssen den Angaben im zutreffenden Abschnitt der Dokumentation entsprechen, in der die Ausnahmetabellen beschrieben sind. In der Ausnahmetabelle sind keine generierten Spalten zulässig. In der Ausnahmetabelle dürfen keine Integritätsbedingungen oder Auslöser definiert sein. Die Ausnahmetabelle selbst sollte sich nicht im Status 'Überprüfung anstehend' befinden.
Benutzeraktion: Erstellen Sie die Ausnahmetabelle, wie im entsprechenden Abschnitt der Dokumentation angegeben ist, und führen Sie die Anweisung bzw. das Dienstprogramm erneut aus.
sqlcode: -3604
sqlstate: 428A5
SQL3605N | Die Tabelle "<tabellenname>" in der Anweisung SET INTEGRITY ist entweder nicht als zu überprüfende Tabelle aufgelistet oder ist eine mehrmals angegebene Ausnahmetabelle. |
Erläuterung: Bei Angabe der Klausel FOR EXCEPTION in der Anweisung SET INTEGRITY kann dieser Fehler auf eine der folgenden Ursachen zurückzuführen sein:
Benutzeraktion: Korrigieren Sie die Tabellennamen, und führen Sie den Befehl erneut aus.
sqlcode: -3605
sqlstate: 428A6
SQL3606N | Die Anzahl der zu überprüfenden Tabellen stimmt nicht mit der in der Anweisung SET INTEGRITY angegebenen Anzahl von Ausnahmetabellen überein. |
Erläuterung: Für jede Tabelle in der Liste muß auch eine Ausnahmetabelle vorliegen.
Benutzeraktion: Wenn nicht bereits geschehen, erstellen Sie die fehlende Ausnahmetabelle, und geben Sie sie in der Liste an, um den Befehl erneut auszuführen.
sqlcode: -3606
sqlstate: 428A7
SQL3608N | Der Status 'Überprüfung anstehend' kann für die abhängige Tabelle "<name-der-abhängigen-tabelle>" mit der Anweisung SET INTEGRITY nicht überprüft oder zurückgesetzt werden, solange sich die übergeordnete Tabelle "<name-der-übergeordneten-tabelle>" im Status 'Überprüfung anstehend' befindet. |
Erläuterung: Die übergeordnete Tabelle darf sich nicht im Status 'Überprüfung anstehend' befinden oder muß in die Aufrufliste aufgenommen werden, damit
Benutzeraktion: Stellen Sie sicher, daß sich die übergeordnete Tabelle nicht im Status 'Überprüfung anstehend' befindet. Führen Sie dazu die Anweisung SET INTEGRITY aus, um die übergeordnete Tabelle zu prüfen.
Die übergeordnete Tabelle sollte zuerst überprüft werden. Es kann auch die abhängige Tabelle geprüft und die übergeordnete Tabelle in die Aufrufliste aufgenommen werden. In diesem Fall kann der Befehl allerdings immer noch fehlschlagen, wenn sich in der übergeordneten Tabelle ungültige Integritätsbedingungen befinden und diese nicht gelöscht werden. Dieser Fall kann eintreten, wenn die Option FOR EXCEPTION nicht verwendet wird.
Im Fall eines referentiellen Zyklus müssen alle Tabellen in die Aufrufliste aufgenommen werden.
sqlcode: -3608
sqlstate: 428A8