SQL0501N | Der in der Anweisung FETCH oder CLOSE angegebene Cursor wurde noch nicht geöffnet. |
Erläuterung: Das Programm versuchte, (1) die Anweisung FETCH oder (2) die Anweisung CLOSE zu einem Zeitpunkt auszuführen, als der betreffende Cursor nicht geöffnet war.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Überprüfen Sie die vorhergehenden Nachrichten auf einen (SQLCODE), der das Schließen des Cursors bewirkt haben könnte. Für jede Anweisung FETCH oder CLOSE, die nach dem Schließen des betreffenden Cursors ausgeführt wird, wird der SQLCODE -501 übergeben.
Wurden zuvor keine anderen SQLCODE-Werte übergeben, korrigieren Sie das Anwendungsprogramm so, daß der Cursor zum Zeitpunkt der Anweisung FETCH oder CLOSE geöffnet ist.
sqlcode: -501
sqlstate: 24501
SQL0502N | Der in der Anweisung OPEN angegebene Cursor ist bereits geöffnet. |
Erläuterung: Das Programm versuchte, die Anweisung OPEN für einen bereits geöffneten Cursor auszuführen.
Die Anweisung kann nicht verarbeitet werden. Der Cursor bleibt unverändert.
Benutzeraktion: Korrigieren Sie das Anwendungsprogramm so, daß die Anweisung OPEN nicht für einen bereits geöffneten Cursor ausgeführt wird.
sqlcode: -502
sqlstate: 24502
SQL0503N | Eine Spalte kann nicht aktualisiert werden, da sie in der Klausel FOR UPDATE der Anweisung SELECT des Cursors nicht angegeben ist. |
Erläuterung: Das Programm versuchte, unter Verwendung eines Cursors einen Wert in einer Tabellenspalte zu aktualisieren, die weder in der Klausel FOR UPDATE der Cursordeklaration noch in der vorbereiteten Anweisung SELECT enthalten ist.
Jede Spalte, die aktualisiert werden soll, muß in der Klausel FOR UPDATE der Cursorvereinbarung angegeben werden.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Korrigieren Sie das Anwendungsprogramm. Muß die Spalte geändert werden, fügen Sie den Spaltennamen in die Klausel FOR UPDATE der Cursordeklaration ein.
sqlcode: -503
sqlstate: 42912
SQL0504N | Der Cursor "<name>" ist nicht definiert. |
Erläuterung: Der in der Anweisung UPDATE oder DELETE WHERE CURRENT OF "<name>" verwendete Cursor "<name>" ist im Anwendungsprogramm nicht deklariert.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Stellen Sie sicher, daß das Anwendungsprogramm vollständig ist, und korrigieren Sie ggf. Fehler in der Schreibweise der Cursornamen.
sqlcode: -504
sqlstate: 34000
SQL0505N | Der Cursor "<name>" ist bereits definiert. |
Erläuterung: Der in der Anweisung DECLARE angegebene Cursorname wurde bereits deklariert.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Stellen Sie sicher, daß die Schreibweise des Namens korrekt ist.
SQL0507N | Der in der Anweisung UPDATE oder DELETE angegebene Cursor ist nicht geöffnet. |
Erläuterung: Das Programm versuchte, die Anweisung UPDATE oder DELETE WHERE CURRENT OF zu einem Zeitpunkt auszuführen, an dem der Cursor nicht geöffnet war.
Die Anweisung kann nicht verarbeitet werden. Die Aktualisierungs- oder Löschoperation wurde nicht ausgeführt.
Benutzeraktion: Überprüfen Sie die vorhergehenden Nachrichten auf einen (SQLCODE), der das Schließen des Cursors bewirkt haben könnte. Für jede Anweisung FETCH oder CLOSE, die nach dem Schließen des jeweiligen Cursors ausgeführt wird, wird der SQLCODE -501 übergeben. Für jede Anweisung UPDATE oder DELETE wird in der beschriebenen Situation der SQLCODE -507 übergeben. Korrigieren Sie die Logik des Anwendungsprogramms so, daß der Cursor zum Ausführungszeitpunkt der Anweisung UPDATE oder DELETE geöffnet ist.
sqlcode: -507
sqlstate: 24501
SQL0508N | Der in der Anweisung UPDATE oder DELETE angegebene Cursor befindet sich nicht in einer Zeile. |
Erläuterung: Das Programm versuchte, die Anweisung UPDATE oder DELETE WHERE CURRENT OF zu einem Zeitpunkt auszuführen, an dem sich der Cursor nicht in einer Zeile der Objekttabelle befand. Der Cursor muß sich in der Zeile befinden, die geändert bzw. gelöscht werden soll.
Der Cursor ist möglicherweise nicht mehr in der betreffenden Zeile positioniert, da diese Zeile gelöscht wurde. Dies betrifft jede Verwendung von Cursorn innerhalb eines Sicherungspunkts, wenn eine Anweisung ROLLBACK TO SAVEPOINT durchgeführt wird.
Benutzer von Systemen mit zusammengeschlossenen Datenbanken: In einer fernen Datenquelle wurde der Datensatz von einer anderen Anwendung (oder einem anderen Cursor innerhalb dieser Anwendung) aktualisiert und/oder gelöscht, so daß der Datensatz nicht mehr existiert.
Die Anweisung kann nicht verarbeitet werden. Die Aktualisierungs- oder Löschoperation wird nicht ausgeführt.
Benutzeraktion: Korrigieren Sie die Logik des Anwendungsprogramms so, daß der Cursor korrekt in der gewünschten Zeile der Objekttabelle positioniert wird, bevor die Anweisung UPDATE oder DELETE ausgeführt wird. Der Cursor befindet sich nicht in einer Zeile, wenn die Anweisung FETCH die Nachricht SQL0100W (SQLCODE: 100) zurückgibt.
sqlcode: -508
sqlstate: 24504
SQL0509N | Die in der Anweisung UPDATE oder DELETE angegebene Tabelle entspricht nicht der in der Anweisung SELECT für den Cursor angegebenen Tabelle. |
Erläuterung: Das Programm versuchte, die Anweisung UPDATE oder DELETE WHERE CURRENT OF Cursor unter Verwendung eines Tabellennamens auszuführen, der nicht dem Namen der Tabelle in der Anweisung SELECT entspricht, mit der der Cursor deklariert wurde.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Korrigieren Sie das Anwendungsprogramm so, daß die Tabelle in der Anweisung UPDATE oder DELETE mit der Tabelle in der Anweisung SELECT übereinstimmt, mit der der Cursor deklariert wird.
sqlcode: -509
sqlstate: 42827
SQL0510N | Die Anweisung UPDATE oder DELETE ist für den angegebenen Cursor nicht erlaubt. |
Erläuterung: Das Programm versuchte, die Cursoranweisung UPDATE oder DELETE WHERE CURRENT OF für eine Tabellen- oder Sichtdefinition auszuführen, die die angeforderte Aktualisierungs- oder Löschoperation nicht zuläßt. Dieser Fehler tritt z. B. beim Versuch auf, eine Löschoperation für eine Sicht auszuführen, für die nur Lesezugriff besteht, oder beim Versuch, eine Änderungsoperation auszuführen, ohne daß der Cursor in der zugehörigen Klausel FOR UPDATE definiert wurde.
Beim Datenbankmanager steht die Sicht nur zum Lesen zur Verfügung, wenn die Anweisung SELECT eine der folgenden Angaben enthält:
Diese Bedingungen gelten nicht für die Unterabfragen der Anweisung SELECT.
Der Cursor wird mit der Klausel FOR FETCH ONLY oder ORDER BY deklariert.
Der Cursor ist mehrdeutig, und beim Binden wurde die Option BLOCKING ALL angegeben.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Wenn der Datenbankmanager die Anweisung nicht verarbeiten kann und der Cursor auf einer Anweisung SELECT oder einer Klausel VALUES basiert, deren Ergebnissicht nur zum Lesen zur Verfügung steht, führen Sie keine Lösch- oder Aktualisierungsanweisung für die betreffende Sicht aus.
Wenn der Datenbankmanager die Anweisung nicht verarbeiten kann und der Cursor nicht auf einer Anweisung SELECT oder einer Klausel VALUES basiert, deren Ergebnissicht nur zum Lesen zur Verfügung steht, und ist der Cursor in der Klausel FOR FETCH ONLY oder ORDER BY definiert, entfernen Sie die betreffende Klausel aus der Cursordefinition, oder geben Sie keine Lösch- oder Aktualisierungsanweisungen ein.
Wenn der Datenbankmanager die Anweisung nicht verarbeiten kann und es weder aus der Definition noch aus dem Kontext ersichtlich ist, ob es sich um einen Cursor handelt, der nur gelesen werden kann (FETCH ONLY), oder um einen aktualisierbaren Cursor, binden Sie das Programm mit der Bindeoption BLOCKING ALL oder BLOCKING UNAMBIG neu.
Benutzer von Systemen mit zusammengeschlossenen Datenbanken: Stellen Sie fest, in welcher Datenquelle die Anforderung fehlgeschlagen ist (die Vorgehensweise wird im Handbuch Problem Determination Guide beschrieben). Falls eine Datenquelle den Fehler verursacht, prüfen Sie die Einschränkungen für die betreffende Datenquelle, um die Fehlerursache zu bestimmen und den den Fehler zu beheben. Gibt es eine Einschränkung für eine Datenquelle, sind in der SQL-Referenz der betreffenden Datenquelle Informationen darüber enthalten, warum das Objekt nicht aktualisierbar ist.
sqlcode: -510
sqlstate: 42828
SQL0511N | Die Klausel FOR UPDATE ist nicht zulässig, weil die durch den Cursor bestimmte Tabelle nicht geändert werden kann. |
Erläuterung: Die Ergebnistabelle der Anweisung SELECT oder der Klausel VALUES kann nicht geändert werden.
Beim Datenbankmanager steht die Ergebnistabelle nur zum Lesen zur Verfügung, wenn der Cursor auf einer Anweisung SELECT oder einer Klausel VALUES basiert, die eine der folgenden Angaben enthält:
Diese Bedingungen gelten nicht für die Unterabfragen der Anweisung SELECT.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Führen Sie keine Änderungsanforderungen für die Ergebnistabelle aus.
Benutzer von Systemen mit zusammengeschlossenen Datenbanken: Stellen Sie fest, in welcher Datenquelle die Anforderung fehlgeschlagen ist (die Vorgehensweise wird im Handbuch Problem Determination Guide beschrieben). Falls eine Datenquelle den Fehler verursacht, prüfen Sie die Einschränkungen für die betreffende Datenquelle, um die Fehlerursache zu bestimmen und den den Fehler zu beheben. Gibt es eine Einschränkung für eine Datenquelle, sind in der SQL-Referenz der betreffenden Datenquelle Informationen darüber enthalten, warum das Objekt nicht aktualisierbar ist.
sqlcode: -511
sqlstate: 42829
SQL0513W | Durch die SQL-Anweisung wird die gesamte Tabelle oder Sicht geändert. |
Erläuterung: Die Anweisung UPDATE oder DELETE enthält keine WHERE-Klausel. Daher werden alle Zeilen der Tabelle oder Sicht geändert, wenn diese Anweisung ausgeführt wird.
Die Anweisung wird akzeptiert.
Benutzer von Systemen mit zusammengeschlossenen Datenbanken: Nicht alle Datenquellen zeigen diese Warnung an. Der Server mit zusammengeschlossenen Datenbanken versucht, diese Warnung anzuzeigen. Es kann jedoch vorkommen, daß der Server mit zusammengeschlossenen Datenbanken nicht alle Situationen erkennt, in denen die Warnung angebracht wäre. Auf diese Art und Weise kann verhindert werden, daß mit einer Anweisung UPDATE/DELETE eine ganze Tabelle oder Sicht geändert wird.
Benutzeraktion: Stellen Sie sicher, daß wirklich die gesamte Tabelle oder Sicht geändert werden soll.
SQL0514N | Der Cursor "<name>" ist nicht vorbereitet. |
Erläuterung: Das Anwendungsprogramm versuchte, den nicht vorbereiteten Cursor "<name>" zu verwenden. Der Cursor gehört zu einer Anweisung, die (1) bisher nicht vorbereitet wurde, (2) durch ROLLBACK nicht gültig gemacht wurde oder (3) durch ein explizites oder implizites Neubinden des Pakets nicht gültig gemacht wurde.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Zu (1): Bereiten Sie die Anweisung vor, die in der Anweisung DECLARE CURSOR für "<name>" angegeben wird, bevor versucht wird, den Cursor zu öffnen. Zu (2): Führen Sie ROLLBACK erst aus, nachdem die Verwendung des Cursors beendet wurde. Zu (3): Die Anweisung zur Vorbereitung des Cursors muß erneut abgesetzt werden.
sqlcode: -514
sqlstate: 26501
SQL0516N | In der Anweisung DESCRIBE ist keine vorbereitete Anweisung angegeben. |
Erläuterung: Der Anweisungsname in der Anweisung DESCRIBE muß für eine Anweisung stehen, die im Verlauf derselben Datenbanktransaktion vorbereitet wurde.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Stellen Sie sicher, daß der Anweisungsname für eine vorbereitete Anweisung steht.
sqlcode: -516
sqlstate: 26501
SQL0517N | Der Cursor "<name>" kennzeichnet eine vorbereitete Anweisung, die keine Anweisung SELECT oder Klausel VALUES ist. |
Erläuterung: Der Cursor "<name>" konnte nicht in der angegebenen Weise verwendet werden, da die vorbereitete Anweisung, die in der Cursordeklaration genannt wird, keine Anweisung SELECT oder Klausel VALUES ist.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Stellen Sie sicher, daß der Anweisungsname in den Anweisungen PREPARE und DECLARE CURSOR für den Cursor "<name>" korrekt angegeben wurde. Oder korrigieren Sie das Programm so, daß in Verbindung mit Cursordeklarationen nur vorbereitete Anweisungen SELECT bzw. Klauseln VALUES verwendet werden.
sqlcode: -517
sqlstate: 07005
SQL0518N | Die in der Anweisung EXECUTE angegebene Anweisung ist nicht vorbereitet, oder es handelt sich um die Anweisung SELECT bzw. Klausel VALUES. |
Erläuterung: Das Anwendungsprogramm versuchte, mit EXECUTE eine Anweisung auszuführen, die (1) bisher nicht vorbereitet wurde, (2) durch ROLLBACK nicht gültig gemacht wurde, (3) eine Anweisung SELECT oder eine Klausel VALUES ist oder (4) durch ein explizites oder implizites Neubinden des Pakets nicht gültig gemacht wurde.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Zu (1): Bereiten Sie die Anweisung vor, bevor sie mit EXECUTE ausgeführt werden soll. Zu (2): Führen Sie ROLLBACK erst aus, nachdem die Verwendung der vorbereiteten Anweisung beendet wurde, oder bereiten Sie nach ROLLBACK die Anweisung erneut vor. Zu (3): Stellen Sie sicher, daß es sich bei der Anweisung nicht um eine Anweisung SELECT oder eine Klausel VALUES handelt. Zu (4): Die Anweisung zur Vorbereitung des Cursors muß erneut abgesetzt werden.
sqlcode: -518
sqlstate: 07003
SQL0519N | Die Anweisung PREPARE kennzeichnet die Anweisung SELECT bzw. die Klausel VALUES für den geöffneten Cursor "<name>". |
Erläuterung: Das Anwendungsprogramm versuchte, die Anweisung SELECT bzw. die Klausel VALUES für den bereits geöffneten Cursor "<name>" vorzubereiten.
Die Anweisung kann nicht vorbereitet werden. Der Cursor bleibt unverändert.
Benutzeraktion: Korrigieren Sie das Anwendungsprogramm so, daß nicht versucht wird, die Anweisung SELECT oder die Klausel VALUES für einen bereits geöffneten Cursor vorzubereiten.
sqlcode: -519
sqlstate: 24506
SQL0525N | Die SQL-Anweisung kann nicht ausgeführt werden, da sie zur Bindezeit für Abschnitt "<abschnittnr>", Paket "<paketname>" und Konsistenz-Token X"<kon-token>" fehlerhaft war. |
Erläuterung: Mögliche Ursachen:
Variablen:
Die Anweisung kann nicht ausgeführt werden.
Benutzeraktion: Ist die SQL-Anweisung nicht für die Ausführung an der angegebenen Position vorgesehen, korrigieren Sie das Programm dahingehend, daß die fehlerhafte Anweisung an dieser Position nicht mehr ausgeführt wird. Bearbeiten Sie das Paket mit dem Precompiler, kompilieren Sie es, und binden Sie es unter Verwendung von ACTION(REPLACE). Ist die SQL-Anweisung für die Ausführung an der angegebenen Position vorgesehen, beheben Sie den beim Binden festgestellten Fehler, und binden Sie das Paket anschließend unter Verwendung von ACTION(REPLACE). Wurden mehrere Versionen des Pakets gebunden, setzen Sie die folgende SELECT-Anweisung ab, um die fehlerhafte Version zu ermitteln: SELECT VERSION FROM posid.SYSIBM.SYSPACKAGE WHERE LOCATION = ' ' AND COLLID = 'objid' AND NAME = 'pgmid' AND HEX(CONTOKEN) = 'kon-token'
Dabei gilt folgendes:
sqlcode: -525
sqlstate: 51015
SQL0526N | Die angeforderte Funktion gilt nicht für deklarierte temporäre Tabellen. |
Erläuterung: Die ausgeführte SQL-Anweisung verweist auf eine deklarierte temporäre Tabelle. Im gegebenen Kontext darf keine deklarierte temporäre Tabelle verwendet werden.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Ändern Sie die SQL-Anweisung so, daß die Objektverweise sich nicht auf deklarierte temporäre Tabellen beziehen.
sqlcode: -526
sqlstate: 42995
SQL0528N | Die Tabelle "<tabellenname>" hat bereits eine eindeutige Integritätsbedingung, bei der es sich um eine Kopie der Integritätsbedingung "<name>" handelt. |
Erläuterung: Eine Klausel UNIQUE verwendet dieselbe Spaltenliste wie die Klausel PRIMARY KEY, eine andere Klausel UNIQUE, den Primärschlüssel oder eine Integritätsbedingung UNIQUE, die bereits für die Tabelle "<tabellenname>" existiert. Doppelte Integritätsbedingungen UNIQUE sind nicht zulässig.
"<name>" ist der Name der Integritätsbedingung, falls ein solcher angegeben wurde oder existiert. Wird kein Name für eine Integritätsbedingung angegeben, wird für "<name>" der erste Spaltenname verwendet, der in der Spaltenliste der Klausel UNIQUE angegeben ist. Dem Spaltennamen werden drei Punkte angefügt.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Entfernen Sie die doppelte Klausel UNIQUE, oder ändern Sie die Spaltenliste in eine Spaltengruppe, die noch keiner eindeutigen Integritätsbedingung angehört.
sqlcode: -528
sqlstate: 42891
SQL0530N | Der Wert von FOREIGN KEY "<integritätsbedingungsname>" zum Einfügen oder Aktualisieren entspricht keinem Wert des Primärschlüssels der übergeordneten Tabelle. |
Erläuterung: Ein Wert wurde in den Fremdschlüssel der Objekttabelle eingesetzt, der jedoch mit keinem der Werte im Primärschlüssel der übergeordneten Tabelle übereinstimmt.
Wird in eine abhängige Tabelle eine Zeile eingefügt, muß der Einfügewert eines Fremdschlüssels einem Wert des Primärschlüssels in einer der Zeilen der Tabelle entsprechen, die in der Beziehung das übergeordnete Element darstellt.
Wird der Wert eines Fremdschlüssels aktualisiert, muß der Aktualisierungswert eines Fremdschlüssels mit dem Wert des Primärschlüssels in einer der Zeilen der in der Beziehung übergeordneten Tabelle bei Beendigung der Anweisung übereinstimmen.
Benutzer von Systemen mit zusammengeschlossenen Datenbanken: Die Integritätsbedingung kann in der Datenquelle vorhanden sein (wenn untergeordnete und übergeordnete Tabellen als Tabellen in der Datenquelle vorhanden sind).
Einige Datenquellen enthalten nicht die entsprechenden Werte für "<integritätsbedingungsname>". Ist dies der Fall, hat das Nachrichten-Token das folgende Format: "<datenquelle>:UNKNOWN". Es weist darauf hin, daß der tatsächliche Wert der angegebenen Datenquelle unbekannt ist.
Die Anweisung konnte nicht ausgeführt werden. Der Inhalt der Objekttabelle bleibt unverändert.
Benutzeraktion: Prüfen Sie zur Problembestimmung erst den Einfüge- oder Aktualisierungswert des Fremdschlüssels, und vergleichen Sie ihn anschließend mit jedem der Primärschlüsselwerte in der übergeordneten Tabelle.
sqlcode: -530
sqlstate: 23503
SQL0531N | Der Primärschlüssel in einer übergeordneten Zeile der Beziehung "<integritätsbedingungsname>" kann nicht aktualisiert werden. |
Erläuterung: Die Operation versuchte, den Primärschlüssel in einer Zeile der übergeordneten Tabelle zu aktualisieren. Dem Primärschlüssel in der angegebenen Zeile sind jedoch abhängige Zeilen in der abhängigen Tabelle in der Integritätsbedingung "<integritätsbedingungsname>" zugeordnet.
Hat die Integritätsbedingung "<integritätsbedingungsname>" die Aktualisierungsbedingung NO ACTION, kann der Wert des Primärschlüssels in einer übergeordneten Zeile nicht aktualisiert werden, wenn von der übergeordneten Zeile bei Beendigung der Anweisung andere Zeilen abhängen.
Hat die Integritätsbedingung "<integritätsbedingungsname>" die Aktualisierungsbedingung RESTRICT, kann der Wert des Primärschlüssels in einer übergeordneten Zeile nicht aktualisiert werden, wenn von der übergeordneten Zeile zum Zeitpunkt der Aktualisierung des Primärschlüssels andere Zeilen abhängen.
Benutzer von Systemen mit zusammengeschlossenen Datenbanken: Die Integritätsbedingung kann in der Datenquelle vorhanden sein (wenn untergeordnete und übergeordnete Tabellen als Tabellen in der Datenquelle vorhanden sind).
Einige Datenquellen enthalten nicht die entsprechenden Werte für "<integritätsbedingungsname>". Ist dies der Fall, hat das Nachrichten-Token das folgende Format: "<datenquelle>:UNKNOWN". Es weist darauf hin, daß der tatsächliche Wert der angegebenen Datenquelle unbekannt ist.
Die Anweisung konnte nicht ausgeführt werden. Der Inhalt der übergeordneten Tabelle wird nicht geändert.
Benutzeraktion: Prüfen Sie den Primärschlüssel der Objekttabelle und den Fremdschlüssel der abhängigen Tabelle, um festzustellen, ob der Wert in der angegebenen Zeile des Primärschlüssels geändert werden soll. Kann das Problem dadurch nicht ermittelt werden, überprüfen Sie die Inhalte der Objekttabelle und der abhängigen Tabelle, um das Problem festzustellen und zu beheben.
sqlcode: -531
sqlstate: 23001, 23504
SQL0532N | Eine übergeordnete Zeile kann nicht gelöscht werden, da die Beziehung "<integritätsbedingungsname>" nur bedingtes Löschen zuläßt. |
Erläuterung: Mit einer Operation wurde versucht, eine bestimmte Zeile aus der übergeordneten Tabelle zu löschen. Dem Primärschlüssel in der angegebenen Zeile sind jedoch abhängige Zeilen in der referentiellen Integritätsbedingung "<integritätsbedingungsname>" zugeordnet, und für die Beziehung gilt die Löschbedingung NO ACTION oder RESTRICT.
Hat eine Integritätsbedingung "<integritätsbedingungsname>" die Löschbedingung NO ACTION, ist es nicht möglich, eine Zeile der übergeordneten Tabelle zu löschen, wenn die abhängigen Zeilen bei Beendigung der Anweisung noch vom Primärschlüssel abhängen.
Hat eine Integritätsbedingung "<integritätsbedingungsname>" die Löschbedingung RESTRICT, ist es nicht möglich, eine Zeile der übergeordneten Tabelle zu löschen, wenn zum Zeitpunkt des Löschvorgangs von der übergeordneten Zeile andere Zeilen abhängen.
Es ist beachten, daß ein Löschvorgang auf andere Zeilen in abhängigen Tabellen mit einer Löschbedingung NO ACTION oder RESTRICT übergreifen und diese löschen kann. Das heißt, die Integritätsbedingung "<integritätsbedingungsname>" kann sich in einer anderen Tabelle befinden als die ursprüngliche Löschoperation.
Benutzer von Systemen mit zusammengeschlossenen Datenbanken: Die Integritätsbedingung kann in der Datenquelle vorhanden sein (wenn untergeordnete und übergeordnete Tabellen als Tabellen in der Datenquelle vorhanden sind).
Einige Datenquellen enthalten nicht die entsprechenden Werte für "<integritätsbedingungsname>". Ist dies der Fall, enthalten die entsprechenden Felder Werte (wie "unknown"). Sie weisen darauf hin, daß der tatsächliche Wert unbekannt ist.
Die Anweisung konnte nicht ausgeführt werden. Der Inhalt der Tabelle bleibt unverändert.
Benutzeraktion: Überprüfen Sie zur Fehlerbestimmung und -behebung die Löschbedingung für alle untergeordneten Tabellen. Über die Beziehung "<integritätsbedingungsname>" kann festgestellt werden, welche Tabellen betroffen sind.
sqlcode: -532
sqlstate: 23001, 23504
SQL0533N | Die Anweisung INSERT ist nicht gültig, da eine Beziehung das Ergebnis einer Gesamtauswahl auf eine Zeile beschränkt. |
Erläuterung: Eine Anweisung INSERT mit einer Gesamtauswahl versuchte, mehrere Zeilen in eine Tabelle einzufügen, die innerhalb einer Beziehung einer referentiellen Integritätsbedingung als übergeordnete und als abhängige Tabelle verwendet wird.
Die Gesamtauswahl der Anweisung INSERT darf nicht mehr als eine Datenzeile als Ergebnis erbringen.
Die Anweisung INSERT konnte nicht ausgeführt werden. Der Inhalt der Objekttabelle bleibt unverändert.
Benutzer von Systemen mit zusammengeschlossenen Datenbanken: Die Integritätsbedingung kann in der Datenquelle vorhanden sein (wenn untergeordnete und übergeordnete Tabellen als Tabellen in der Datenquelle vorhanden sind).
Benutzeraktion: Überprüfen Sie die Suchbedingung der Gesamtauswahl, und stellen Sie sicher, daß nicht mehr als eine Datenzeile ausgewählt wird.
sqlcode: -533
sqlstate: 21501
SQL0534N | Es wurde versucht, mehrere Zeilen zu aktualisieren. Dies ist nicht zulässig. |
Erläuterung: Mit der Anweisung UPDATE wurde versucht, mehrere Zeilen einer Spalte zu aktualisieren, die zu einem Primärschlüssel oder einem eindeutigen Index gehört.
Das gleichzeitige Aktualisieren mehrerer Zeilen einer Spalte, die zu einem Primärschlüssel oder einem eindeutigen Index gehört, wird nicht unterstützt.
Die Anweisung UPDATE konnte nicht ausgeführt werden. Der Inhalt der Tabelle bleibt unverändert.
Benutzer von Systemen mit zusammengeschlossenen Datenbanken: Die Integritätsbedingung kann im Server mit zusammengeschlossenen Datenbanken existieren (wenn untergeordnete und übergeordnete Tabellen als Tabellen im zusammengeschlossenen Server existieren), oder sie kann in der Datenquelle existieren (wenn untergeordnete und übergeordnete Tabellen in der Datenquelle existieren).
Benutzeraktion: Stellen Sie sicher, daß mit der Suchbedingung der Anweisung UPDATE nur eine Datenzeile der Objekttabelle zum Aktualisieren ausgewählt wird.
sqlcode: -534
sqlstate: 21502
SQL0535N | Die Anweisung DELETE ist nicht gültig, da eine Beziehung, die auf sich selbst verweist, nur das Löschen von einer Zeile zuläßt. |
Erläuterung: Mit einer Anweisung DELETE, die die Klausel WHERE enthält, wurde versucht, mehrere Zeilen aus einer Tabelle zu löschen, die innerhalb einer Beziehung einer referentiellen Integritätsbedingung, für die die Löschbedingung RESTRICT oder SET NULL gilt, als übergeordnete und als abhängige Tabelle verwendet wird.
Mit der Klausel WHERE der Anweisung DELETE darf nicht mehr als eine Datenzeile ausgewählt werden.
Die Anweisung DELETE konnte nicht ausgeführt werden. Der Inhalt der Objekttabelle bleibt unverändert.
Benutzer von Systemen mit zusammengeschlossenen Datenbanken: Die Integritätsbedingung kann in der Datenquelle vorhanden sein (wenn untergeordnete und übergeordnete Tabellen als Tabellen in der Datenquelle vorhanden sind).
Benutzeraktion: Überprüfen Sie die Suchbedingung der Klausel WHERE, und stellen Sie sicher, daß nur eine Datenzeile ausgewählt wird.
(Diese Einschränkung gilt nur für Versionen vor DB2 Version 2.)
sqlcode: -535
sqlstate: 21504
SQL0536N | Die Anweisung DELETE ist nicht gültig, da die Operation Auswirkungen auf die Tabelle "<name>" haben kann. |
Erläuterung: Es wurde versucht, für die in einer Unterabfrage verwendete Tabelle "<name>" die Anweisung DELETE auszuführen.
Die in der Unterabfrage der Anweisung DELETE angesprochene Tabelle kann von der Operation aus einem der folgenden Gründe betroffen sein:
Benutzer von Systemen mit zusammengeschlossenen Datenbanken: Die Integritätsbedingung kann in der Datenquelle vorhanden sein (wenn untergeordnete und übergeordnete Tabellen als Tabellen in der Datenquelle vorhanden sind).
Einige Datenquellen enthalten nicht die entsprechenden Werte für "<name>". Ist dies der Fall, enthalten die entsprechenden Felder Werte (wie "unknown"). Sie weisen darauf hin, daß der tatsächliche Wert unbekannt ist.
Die Anweisung konnte nicht verarbeitet werden.
Benutzeraktion: Geben Sie in der Unterabfrage der Anweisung DELETE keine Tabelle an, die von der Anweisung DELETE betroffen sein könnte.
HINWEIS: Dieser Fehler tritt nur bei DB2-Releases vor Version 2 und bei Hosts auf, auf die über DB2 Connect zugegriffen wird.
sqlcode: -536
sqlstate: 42914
SQL0537N | Die Klauseln PRIMARY KEY, FOREIGN KEY, UNIQUE oder PARTITIONING KEY kennzeichnen die Spalte "<name>" mehrmals. |
Erläuterung: Die Spalte "<name>" kommt in einer Klausel PRIMARY KEY, FOREIGN KEY, UNIQUE oder PARTITIONING KEY der Anweisung CREATE oder ALTER mehrmals vor.
Benutzer von Systemen mit zusammengeschlossenen Datenbanken: Die Integritätsbedingung kann in der Datenquelle vorhanden sein (wenn untergeordnete und übergeordnete Tabellen als Tabellen in der Datenquelle vorhanden sind).
Einige Datenquellen enthalten nicht die entsprechenden Werte für "<name>". Ist dies der Fall, enthalten die entsprechenden Felder Werte (wie "unknown"). Sie weisen darauf hin, daß der tatsächliche Wert unbekannt ist.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Geben Sie für jede Spalte einen eindeutigen Namen an.
sqlcode: -537
sqlstate: 42709
SQL0538N | FOREIGN KEY "<name>" entspricht nicht der Beschreibung des Primärschlüssels der Tabelle "<tabellenname>". |
Erläuterung: Die Definition des angegebenen Fremdschlüssels stimmt nicht mit der Beschreibung des Primärschlüssels in der Tabelle "<tabellenname>" überein.
Mögliche Fehlerursachen sind:
"<name>" ist der Name der Integritätsbedingung, sofern in der Klausel FOREIGN KEY angegeben. Wurde kein Integritätsbedingungsname angegeben, ist "<name>" der erste in der Klausel angegebene Spaltenname, dem drei Punkte angefügt werden.
Benutzer von Systemen mit zusammengeschlossenen Datenbanken: Einige Datenquellen enthalten nicht die entsprechenden Werte für "<name>" und "<tabellenname>". Ist dies der Fall, enthalten die entsprechenden Felder Werte (wie "unknown"). Sie weisen darauf hin, daß der tatsächliche Wert unbekannt ist.
Die Integritätsbedingung kann in der Datenquelle vorhanden sein (wenn untergeordnete und übergeordnete Tabellen in der Datenquellevorhanden sind).
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Korrigieren Sie die Anweisung so, daß die Beschreibung des Fremdschlüssels der Beschreibung des Primärschlüssels entspricht.
sqlcode: -538
sqlstate: 42830
SQL0539N | Die Tabelle "<name>" hat keinen Schlüssel "<schlüsselart>". |
Erläuterung: Mögliche Ursachen:
Benutzer von Systemen mit zusammengeschlossenen Datenbanken: Die Integritätsbedingung kann in der Datenquelle vorhanden sein (wenn untergeordnete und übergeordnete Tabellen als Tabellen in der Datenquelle vorhanden sind).
Einige Datenquellen enthalten nicht die entsprechenden Werte für "<name>" und "<schlüsselart>". Ist dies der Fall, enthalten die entsprechenden Felder Werte (wie "unknown"). Sie weisen darauf hin, daß der tatsächliche Wert unbekannt ist.
Die Anweisung kann nicht verarbeitet werden. Ein Systemkatalog kann in einer referentiellen Integritätsbedingung nicht als übergeordnete Tabelle definiert werden.
Benutzeraktion: Beim Erstellen einer referentiellen Integritätsbedingung muß der Primärschlüssel angegeben werden, bevor die (Integritätsbedingungen) der Fremdschlüssel angegeben werden.
sqlcode: -539
sqlstate: 42888
SQL0540N | Die Definition von Tabelle "<tabellenname>" ist unvollständig, da ein primärer Index oder ein erforderlicher eindeutiger Index fehlt. |
Erläuterung: Die angegebene Tabelle wurde mit einer Klausel PRIMARY KEY oder UNIQUE definiert. Die Definition ist unvollständig und kann erst verwendet werden, nachdem ein eindeutiger Index für den Primärschlüssel (Primärindex) sowie für jede Spaltengruppe in den einzelnen UNIQUE-Klauseln (erforderliche eindeutige Indizes) definiert wurde. Es wurde versucht, die Tabelle in einer Klausel FOREIGN KEY oder einer SQL-Bearbeitungsanweisung zu verwenden.
Die Anweisung kann nicht ausgeführt werden.
Benutzeraktion: Definieren Sie einen Primärindex oder einen erforderlichen eindeutigen Index für die Tabelle, bevor auf sie verwiesen wird.
sqlcode: -540
sqlstate: 57001
SQL0541W | Die referentielle, Primärschlüssel-, oder eindeutige Integritätsbedingung "<name>" wird ignoriert, da es sich dabei um eine doppelte Integritätsbedingung handelt. |
Erläuterung: Wenn sich "<name>" auf eine referentielle Integritätsbedingung bezieht, verwendet eine Klausel FOREIGN KEY denselben Fremdschlüssel und dieselbe übergeordnete Tabelle wie eine andere Klausel FOREIGN KEY.
Wenn sich "<name>" auf einen Primärschlüssel oder eine eindeutige Integritätsbedingung bezieht, ist eine der folgenden Situationen eingetreten.
"<name>" ist der Name der Integritätsbedingung, falls angegeben. Wurde kein Integritätsbedingungsname angegeben, ist "<name>" der erste in der Spaltenliste der Klausel FOREIGN KEY oder UNIQUE angegebene Spaltenname, dem drei Punkte angefügt werden.
Benutzer von Systemen mit zusammengeschlossenen Datenbanken: Die Integritätsbedingung kann in der Datenquelle vorhanden sein (wenn untergeordnete und übergeordnete Tabellen als Tabellen in der Datenquelle vorhanden sind).
Einige Datenquellen enthalten nicht die entsprechenden Werte für "<name>". Ist dies der Fall, enthalten die entsprechenden Felder Werte (wie "unknown"). Sie weisen darauf hin, daß der tatsächliche Wert unbekannt ist.
Die angegebene referentielle oder eindeutige Integritätsbedingung wurde nicht erstellt. Die Anweisung wurde erfolgreich verarbeitet.
Benutzeraktion: Keine Maßnahme erforderlich. Die Verarbeitung kann fortgesetzt werden.
sqlcode: +541
sqlstate: 01543
SQL0542N | "<name>" kann keine Spalte eines Primärschlüssels oder eindeutigen Schlüssels sein, da sie Nullwerte enthalten kann. |
Erläuterung: In der Spalte "<name>", die in der Klausel PRIMARY KEY oder der Klausel UNIQUE verwendet wird, sind laut Definition Nullwerte zulässig.
Einige Datenquellen enthalten nicht die entsprechenden Werte für "<name>". Ist dies der Fall, enthalten die entsprechenden Felder Werte (wie "unknown"). Sie weisen darauf hin, daß der tatsächliche Wert unbekannt ist.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Korrigieren Sie die Definition der Spalte, des Primärschlüssels oder des eindeutigen Schlüssels.
sqlcode: -542
sqlstate: 42831
SQL0543N | Eine Zeile in der übergeordneten Tabelle konnte nicht gelöscht werden, da die Tabelle eine Zeile enthält, die gegen die Integritätsbedingung "<integritätsbedingungsname>" verstößt. |
Erläuterung: Die Anweisung DELETE konnte nicht ausgeführt werden, da es sich bei der Zieltabelle um eine übergeordnete Tabelle handelt, die über eine referentielle Integritätsbedingung und die Löschbedingung SET NULL mit einer abhängigen Tabelle verbunden ist. Eine für die abhängige Tabelle definierte Prüfung auf Integritätsbedingung legt jedoch fest, daß die Spalte keine Nullwerte enthalten darf.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Überprüfen Sie den Fremdschlüssel und die Löschbedingung in der abhängigen Tabelle und die widersprüchliche Prüfung auf Integritätsbedingung. Ändern Sie die Löschbedingung oder aber die Prüfung auf Integritätsbedingung so, daß die beiden Elemente sich nicht widersprechen.
sqlcode: -543
sqlstate: 23511
SQL0544N | Die Prüfung auf Integritätsbedingung "<integritätsbedingungsname>" konnte nicht hinzugefügt werden, da die Tabelle eine Zeile enthält, die gegen die Integritätsbedingung verstößt. |
Erläuterung: Mindestens eine in der Tabelle vorhandene Zeile verstößt gegen die Prüfung auf Integritätsbedingung, die mit der Anweisung ALTER TABLE der Tabelle hinzugefügt werden soll.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Überprüfen Sie die Prüfung auf Integritätsbedingung, die in der Anweisung ALTER TABLE angegeben wurde, und die in der Tabelle enthaltenen Daten, um die Zeile(n) zu lokalisieren, in denen es zum Verstoß kommt. Ändern Sie den Inhalt der betreffende(n) Zeile(n) oder die Prüfung auf Integritätsbedingung so, daß es zu keinem Verstoß kommt.
sqlcode: -544
sqlstate: 23512
SQL0545N | Die angeforderte Operation ist nicht zulässig, da eine Zeile gegen die Prüfung auf Integritätsbedingung "<integritätsbedingungsname>" verstößt. |
Erläuterung: Die Verstöße gegen die Prüfung auf Integritätsbedingung können auf die Anweisung INSERT oder UPDATE zurückgehen. Die Ergebniszeile verstößt gegen die Prüfung auf Integritätsbedingung, die für diese Tabelle definiert wurde.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Überprüfen Sie die Daten und die Definition der Prüfung auf Integritätsbedingung in der Katalogsicht SYSCAT.CHECKS, um die Ursache für das Scheitern der Anweisung INSERT oder UPDATE zu bestimmen. Ändern Sie die Daten so, daß sie nicht mehr gegen die Prüfung auf Integritätsbedingung verstoßen.
sqlcode: -545
sqlstate: 23513
SQL0546N | Die Prüfung auf Integritätsbedingung "<integritätsbedingungsname>" ist ungültig. |
Erläuterung: Eine in der Anweisung CREATE TABLE oder ALTER TABLE enthaltene Prüfung auf Integritätsbedingung ist aus mindestens einem der folgenden Gründe ungültig:
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Mögliche Maßnahmen (abhängig von der Fehlerursache):
sqlcode: -546
sqlstate: 42621
SQL0548N | Eine Prüfung auf Integritätsbedingung, deren Definition "<prüfbedingungselement>" umfaßt, ist ungültig. |
Erläuterung: Eine in der Anweisung CREATE TABLE oder ALTER TABLE enthaltene Prüfung auf Integritätsbedingung ist aus mindestens einem der folgenden Gründe ungültig:
Das Token im Text der Fehlernachricht gibt das ungültige Element an.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Mögliche Maßnahmen (abhängig von der Fehlerursache):
sqlcode: -548
sqlstate: 42621.
SQL0549N | Die Anweisung "<anweisung>" ist nicht zulässig für "<objektname1>" der Art "<objektart1>", da die Bindeoption DYNAMICRULES(BIND) in "<objektart2>" wirksam ist. |
Erläuterung: Ein Programm versuchte, die angegebene SQL-Anweisung abzusetzen, die eine von mehreren SQL-Anweisungen ist, die nicht von einem Paket oder Zugriffsplan abgesetzt werden können, für das/den die Option DYNAMICRULES(BIND) aktiv ist. Es handelt sich um folgende SQL-Anweisungen:
Benutzeraktion: Führen Sie einen der folgenden Schritte zur Fehlerbehebung aus:
sqlstate: 42509
SQL0551N | "<berechtigungs-ID>" verfügt nicht über die Berechtigung, die Operation "<operation>" für das Objekt "<name>" auszuführen. |
Erläuterung: Unter Verwendung von "<berechtigungs-ID>" wurde versucht, die Operation "<operation>" für das Objekt "<name>" auszuführen. Die verwendete Berechtigungs-ID hat jedoch nicht die dafür benötigte Berechtigung.
Wird eine Tabelle, die referentielle Integritätsbedingungen umfaßt, erstellt oder geändert, wird über den SQLCODE dieser Nachricht angezeigt, daß der ausführende Benutzer nicht über die Berechtigung REFERENCES verfügt, die zum Erstellen oder Löschen eines Fremdschlüssels erforderlich ist. In diesem Fall steht "<operation>" für "REFERENCES" und "<name>" für das Objekt, auf das die Integritätsbedingung verweist.
Beim Versuch, ein DB2-Dienstprogramm oder eine CLI-Anwendung auszuführen, kann es sein, daß die DB2-Dienstprogramme neu an die Datenbank gebunden werden müssen, da die Benutzer-ID, unter der die Datenbank erstellt wurde, unter Umständen nicht mehr existiert oder nicht mehr über die erforderlichen Zugriffsrechte verfügt.
Benutzer von Systemen mit zusammengeschlossenen Datenbanken: Wird diese Nachricht während der Änderung der Spalte remote_pw der Sicht SYSCAT.USEROPTIONS angezeigt, ist der Benutzer nicht berechtigt, das Kennwort eines anderen Benutzers zu ändern. Hierzu ist entweder die SYSADM-Berechtigung erforderlich, oder eine Berechtigungs-ID (Wert im Sonderregister USER), die mit dem Wert in der Spalte für die Berechtigungs-ID (authid) der zu aktualisierenden Zeilen übereinstimmt. Einige Datenquellen enthalten nicht die entsprechenden Werte für "<berechtigungs-ID>", <operation> und <name>. In diesen Fällen haben die Nachrichten-Token die folgenden Formate: "<datenquelle> AUTHID:UNKNOWN", "UNKNOWN" und "<datenquelle>:TABLE/VIEW". Sie weisen darauf hin, daß die tatsächlichen Werte für Berechtigungs-ID, Operation und Name in der angegebenen Datenquelle unbekannt sind.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Stellen Sie sicher, daß "<berechtigungs-ID>" über die Berechtigung zum Ausführen der Operation verfügt.
Benutzer von Systemen mit zusammengeschlossenen Datenbanken: Die Berechtigung kann für den Server mit zusammengeschlossenen Datenbanken und/oder die Datenquelle gelten.
Falls die DB2-Dienstprogramme erneut an die Datenbank gebunden werden müssen, kann der Datenbankadministrator dies mit einem der folgenden CLP-Befehle vom Unterverzeichnis bnd aus vornehmen, während er mit der Datenbank verbunden ist:
sqlcode: -551
sqlstate: 42501
SQL0552N | "<berechtigungs-ID>" verfügt nicht über die Berechtigung, die Operation "<operation>" auszuführen. |
Erläuterung: Unter Verwendung von "<berechtigungs-ID>" wurde versucht, die Operation "<operation>" auszuführen. Die verwendete Berechtigungs-ID hat jedoch nicht die dafür benötigte Berechtigung.
Benutzer von Systemen mit zusammengeschlossenen Datenbanken: Einige Datenquellen enthalten nicht die entsprechenden Werte für "<berechtigungs-ID>" und <operation>. In diesen Fällen haben die Nachrichten-Token die folgenden Formate: "<datenquelle> AUTHID:UNKNOWN" und "UNKNOWN". Sie weisen darauf hin, daß die tatsächlichen Werte für Berechtigungs-ID und Operation in der Datenquelle unbekannt sind.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Stellen Sie sicher, daß "<berechtigungs-ID>" über die Berechtigung zum Ausführen der Operation verfügt.
Benutzer von Systemen mit zusammengeschlossenen Datenbanken: Die Berechtigung kann für den Server mit zusammengeschlossenen Datenbanken und/oder die Datenquelle gelten.
sqlcode: -552
sqlstate: 42502
SQL0553N | Ein Objekt kann nicht mit dem Schemennamen "<schemenname>" erstellt werden. |
Erläuterung: Die Ursache dafür, daß der Schemenname "<schemenname>" ungültig ist, hängt vom Typ des zu erstellenden Objekts ab.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Verwenden Sie einen gültigen Schemennamen, oder entfernen Sie den expliziten Schemennamen, und wiederholen Sie die Anweisung.
sqlcode: -553
sqlstate: 42939
SQL0554N | Eine Berechtigungs-ID kann sich nicht selbst eine Berechtigung erteilen. |
Erläuterung: Die zum Ausführen der Anweisung GRANT verwendete Berechtigungs-ID ist selbst als Eintrag in der Liste der Berechtigungs-IDs enthalten, denen die Berechtigungen erteilt werden sollen.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Löschen Sie die Berechtigungs-ID aus der Liste.
sqlcode: -554
sqlstate: 42502
SQL0555N | Eine Berechtigungs-ID kann sich nicht selbst eine Berechtigung entziehen. |
Erläuterung: Die zum Ausführen der Anweisung REVOKE verwendete Berechtigungs-ID ist selbst als Eintrag in der Liste der Berechtigungs-IDs enthalten, denen die Berechtigungen entzogen werden sollen.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Löschen Sie die Berechtigungs-ID aus der Liste.
sqlcode: -555
sqlstate: 42502
SQL0556N | Der Versuch, "<berechtigungs-ID>" eine Berechtigung zu entziehen, ist fehlgeschlagen, da "<berechtigungs-ID>" nicht über diese Berechtigung verfügt. |
Erläuterung: Die Berechtigung wurde nicht entzogen, da "<berechtigungs-ID>" nicht über diese Berechtigung verfügt.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Ändern Sie die Anweisung REVOKE so, daß sie den Regeln für die Anweisung REVOKE entspricht, und führen Sie die Anweisung erneut aus. Werden in der Anweisung REVOKE mehrere Berechtigungs-IDs und mehrere Berechtigungen aufgelistet, stellen Sie sicher, daß jede Berechtigungs-ID über mindestens eine der angegebenen Berechtigungen verfügt.
sqlcode: -556
sqlstate: 42504
SQL0557N | Die angegebene Kombination von Berechtigungen kann weder erteilt noch entzogen werden. |
Erläuterung: Mögliche Ursachen:
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Korrigieren Sie die Anweisung, und führen Sie sie erneut aus.
sqlcode: -557
sqlstate: 42852
SQL0558N | Der Versuch, "<berechtigungs-ID>" eine Berechtigung zu entziehen, ist fehlgeschlagen, da "<berechtigungs-ID>" immer noch über die Berechtigung "<steuerung>" verfügen würde. |
Erläuterung: "<berechtigungs-ID>" verfügt über die Berechtigung "<steuerung>". Die zu entziehende Berechtigung ist Bestandteil der Berechtigung "<steuerung>", so daß kein Berechtigungsentzug möglich ist, es sei denn, die Berechtigung "<steuerung>" wird ebenfalls entzogen.
Für die Berechtigung "<steuerung>" gibt es die folgenden gültigen Werte:
Die Anweisung kann nicht ausgeführt werden. Die Berechtigung wird nicht entzogen.
Benutzeraktion: Entziehen Sie, falls erforderlich, die Berechtigung "<steuerung>".
sqlcode: -558
sqlstate: 42504
SQL0562N | Die angegebenen Datenbankberechtigungen können nicht für PUBLIC erteilt werden. |
Erläuterung: Mit der Anweisung GRANT wurde versucht, der reservierten Berechtigungs-ID PUBLIC eine Datenbankberechtigung zu erteilen. Es ist jedoch nicht möglich, der reservierten Berechtigungs-ID PUBLIC Berechtigung DBADM zu erteilen.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Die implizierte Funktion wird nicht unterstützt.
sqlcode: -562
sqlstate: 42508
SQL0567N | "<berechtigungs-ID>" ist keine gültige Berechtigungs-ID. |
Erläuterung: Der Wert "<berechtigungs-ID>" ist aus einem der folgenden Gründe als Berechtigungs-ID ungültig:
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Korrigieren Sie die Berechtigungs-ID.
sqlcode: -567
sqlstate: 42602
SQL0569N | Die Anweisung GRANT/REVOKE schlug fehl, da "<berechtigungsname>" sowohl einen Benutzer als auch eine Benutzergruppe im System kennzeichnen kann. |
Erläuterung: Der in der Anweisung GRANT oder REVOKE angegebene Berechtigungsname kann für einen Einzelbenutzer oder eine Benutzergruppe im Sicherheitsnamensbereich stehen. Die Anweisung ist nicht eindeutig, da weder das Schlüsselwort USER noch das Schlüsselwort GROUP angegeben wurde. Bei Verwendung der DCE-Sicherheit ist immer das Schlüsselwort USER oder GROUP erforderlich.
Benutzeraktion: Ergänzen Sie die Anweisung durch das Schlüsselwort USER oder GROUP, so daß die Berechtigungs-ID eindeutig definiert wird.
sqlcode: -569
sqlstate: 56092
SQL0570W | Nicht alle für das Objekt "<objektname>" der Art "<objektart>" geforderten Zugriffsrechte wurden gewährt. |
Erläuterung: Es wurde versucht, für das Objekt "<objektname>" der Art "<objektart>" eine Operation GRANT durchzuführen. Es wurden jedoch nicht alle oder keine der geforderten Zugriffsrechte gewährt. Die Berechtigungs-ID, mit der die Anweisung eingegeben wurde, hat nicht alle für die Operation GRANT erforderlichen Zugriffsrechte oder verfügt nicht über die Berechtigung DBADM.
Alle gültigen geforderten Zugriffsrechte wurden gewährt.
Benutzeraktion: Wiederholen Sie die Operation mit den erforderlichen Zugriffsrechten.
sqlcode: +570
sqlstate: 01007
SQL0572N | Paket "<paketname>" ist funktionsunfähig. |
Erläuterung: Das Paket "<paketname>" ist als funktionsunfähig gekennzeichnet und muß erneut explizit gebunden werden, bevor es verwendet werden kann. Dieses Paket kann nicht verwendet werden, weil mindestens eine benutzerdefinierte Funktion, auf der es basierte, gelöscht wurde.
Benutzeraktion: Binden Sie das genannte Paket erneut explizit mit dem Befehl REBIND oder BIND.
sqlcode: -572
sqlstate: 51028
SQL0573N | Eine Spaltenliste in der Klausel REFERENCES der Integritätsbedingung "<name>" kennzeichnet nicht eine eindeutige Integritätsbedingung der übergeordneten Tabelle "<tabellenname>". |
Erläuterung: Die Klausel REFERENCES der mit "<name>" angegebenen Integritätsbedingung enthält eine Liste mit Spaltennamen, die nicht mit den Namen der Spalten übereinstimmen, die für den Primärschlüssel oder einen beliebigen eindeutigen Schlüssel der entsprechenden Tabelle "<tabellenname>" definiert wurden.
"<name>" ist der Name der Integritätsbedingung, falls angegeben. Wurde kein Integritätsbedingungsname angegeben, ist "<name>" der erste in der Spaltenliste der Klausel FOREIGN KEY angegebene Spaltenname, dem drei Punkte angefügt werden.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Korrigieren Sie die Spaltenliste der Klausel REFERENCES, oder fügen Sie der angesprochenen Tabelle die eindeutige Integritätsbedingung hinzu.
sqlcode: -573
sqlstate: 42890
SQL0574N | Der DEFAULT-Wert oder Wert des Attributs IDENTITY ist für die Spalte "<spaltenname>" in der Tabelle "<tabellenname>" ungültig. Ursachencode: "<ursachencode>". |
Erläuterung: Der DEFAULT-Wert oder der Wert des Attributs IDENTITY für die Spalte "<spaltenname>" in der Tabelle "<tabellenname>" ist nicht gültig. Mögliche Ursachencodes:
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Korrigieren Sie den DEFAULT-Wert oder Wert des Attributs IDENTITY nach Maßgabe des zurückgegebenen Ursachencodes.
sqlcode: -574
sqlstate: 42894
SQL0575N | Die Sicht oder Übersichtstabelle "<name>" kann nicht verwendet werden, da sie als unbrauchbar markiert wurde. |
Erläuterung: Die Sicht oder Übersichtstabelle "<name>" wurde als unbrauchbar markiert, da eine Tabelle, eine Sicht, ein Aliasname oder ein Zugriffsrecht entfernt wurde, von der sie abhängt. Die Sicht kann nur noch von folgenden SQL-Anweisungen verwendet werden:
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Handelt es sich bei "<name>" um eine Sicht, erstellen Sie die Sicht erneut. Setzen Sie hierzu die Anweisung CREATE VIEW ab, und verwenden Sie die Sichtdefinition der unbrauchbaren Sicht. Handelt es sich bei "<name>" um eine Übersichtstabelle, erstellen Sie diese erneut. Setzen Sie hierzu die Anweisung CREATE TABLE ab, und verwenden Sie die Übersichtstabellendefinition der unbrauchbaren Übersichtstabelle.
sqlcode: -575
sqlstate: 51024
SQL0576N | Der Aliasname "<name>" für "<name2>" konnte nicht erstellt werden. Er hätte eine Verkettung von Aliasnamen zur Folge, die zu einer Endlosschleife führt. |
Erläuterung: Die Definition des Aliasnamens "<name>" für "<name2>" hätte zu einer zirkulären Aliasverkettung geführt, die nicht hätte korrekt aufgelöst werden können. Eine solche Verkettung liegt zum Beispiel vor, wenn der Aliasname A auf den Aliasnamen B verweist, der seinerseits wieder auf den Aliasnamen A verweist.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Ändern Sie die Definition des Aliasnamens "<name>", oder ändern Sie die Definition eines anderen Aliasnamens innerhalb der Verkettung so, daß keine zirkuläre Verkettung erfolgt.
sqlcode: -576
sqlstate: 42916
SQL0577N | Es wurde versucht, über die benutzerdefinierte Funktion oder Prozedur "<funktionsname>" (spezifischer Name: "<spezifischer-name>") Daten zu ändern. Die Funktion war jedoch nicht als MODIFIES SQL DATA definiert. |
Erläuterung: Das Programm, mit dem der Hauptteil der benutzerdefinierten Funktion (UDF) oder Prozedur implementiert wird, darf keine SQL-Daten ändern.
Benutzeraktion: Entfernen Sie alle SQL-Anweisungen, die Daten ändern, und kompilieren Sie das Programm neu. Untersuchen Sie bei gespeicherten Prozeduren die zulässige SQL-Stufe, wie sie in der Anweisung CREATE PROCEDURE angegeben ist.
sqlcode: -577
sqlstate: 38002
sqlstate: 42985
SQL0579N | Es wurde versucht, über die benutzerdefinierte Funktion oder Prozedur "<funktionsname>" (spezifischer Name: "<spezifischer-name>") Daten zu lesen. Die Funktion war jedoch nicht als READ SQL DATA oder MODIFIES SQL DATA definiert. |
Erläuterung: Das Programm, mit dem der Hauptteil der benutzerdefinierten Funktion (UDF) oder Prozedur implementiert wird, darf keine SQL-Daten lesen.
Benutzeraktion: Entfernen Sie alle SQL-Anweisungen, die Daten lesen, und kompilieren Sie das Programm neu. Untersuchen Sie bei gespeicherten Prozeduren die zulässige SQL-Stufe, wie sie in der Anweisung CREATE PROCEDURE angegeben ist.
sqlcode: -579
sqlstate: 38004
sqlstate: 42985
SQL0580N | Es ist nicht zulässig, alle Einzelergebnisausdrücke des Ausdrucks CASE als Nullwerte zu definieren. |
Erläuterung: Die Anweisung enthält den Ausdruck CASE. Innerhalb dieses Ausdrucks sind alle Einzelergebniswerte (d. h. alle Ausdrücke nach den Schlüsselwörtern THEN und ELSE) als Nullwerte definiert (Schlüsselwort NULL).
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Ändern Sie den Ausdruck CASE so, daß mindestens ein Einzelergebnis ohne das Schlüsselwort NULL definiert wird.
sqlcode: -580
sqlstate: 42625
SQL0581N | Die Datentypen der Einzelergebnisausdrücke im Ausdruck CASE sind nicht miteinander kompatibel. |
Erläuterung: Die Anweisung enthält den Ausdruck CASE. Die Einzelergebniswerte dieses Ausdrucks (d. h. alle Ausdrücke nach den Schlüsselwörtern THEN und ELSE) sind nicht miteinander kompatibel.
Die Datentypen der Einzelergebnisse eines Ausdrucks CASE werden auf der Basis der Regeln für Ergebnisdatentypen bestimmt. Im vorliegenden Fall sind die Datentypen der Einzelergebnisse aus einem der folgenden Gründe nicht miteinander kompatibel:
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Ändern Sie die Datentypen der Einzelergebnisse so, daß sie miteinander kompatibel sind.
sqlcode: -581
sqlstate: 42804
SQL0582N | Der Ausdruck CASE, der in einer Klausel VALUES, einem Vergleichselement IN, einer Klausel GROUP BY oder ORDER BY enthalten ist, kann selbst keine Vergleichsfunktion, das Vergleichselement IN mit einer Gesamtauswahl oder das Vergleichselement EXISTS enthalten. |
Erläuterung: Bei der Suchbedingung des Ausdrucks CASE handelt es sich um:
Zugleich ist der Ausdruck CASE Bestandteil:
Der Ausdruck CASE wird in dieser Konstellation nicht unterstützt. Der Ausdruck CASE ist möglicherweise Teil einer in SQL geschriebenen Funktion.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Entfernen Sie die Vergleichsfunktion, das Vergleichselement IN bzw. das Vergleichselement EXISTS aus dem Ausdruck CASE. Wenn der Ausdruck CASE Teil einer Funktion ist, muß die Abfrage ohne die Funktion formuliert werden, die den Fehler verursacht.
sqlcode: -582
sqlstate: 42625
SQL0583N | Die Verwendung der Routine "<routinenname>" ist ungültig, da sie nicht deterministisch ist oder eine externe Aktion enthält. |
Erläuterung: Die Routine (Funktion oder Methode) "<routinenname>" ist als nicht deterministische Routine oder als Routine mit einer externen Aktion definiert. Diese Art von Routine wird im verwendeten Kontext nicht unterstützt. In folgenden Kontexten ist dieser Typ ungültig:
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Ist die Verwendung einer nicht deterministischen Routine oder einer Routine mit externer Aktion nicht beabsichtigt, ersetzen Sie die Routine durch eine Routine ohne diese Merkmale. Sind die Merkmale der nicht deterministischen Routine bzw. der Routine mit externer Aktion beabsichtigt, verwenden Sie die Alternativform der Anweisungen, die diese Absicht explizit angeben.
sqlcode: -583
sqlstate: 42845
SQL0584N | Der Gebrauch von NULL oder DEFAULT ist ungültig. |
Erläuterung: DEFAULT kann nur in einer Klausel VALUES verwendet werden, die zu einer Anweisung INSERT gehört.
Eine Klausel VALUES, die nicht Bestandteil einer Anweisung INSERT ist, muß in mindestens einer Zeile jeder Spalte einen Wert ungleich NULL haben.
Wenn DEFAULT als Spaltenname in einer Klausel WHERE oder HAVING verwendet wird, muß er in Großbuchstaben angegeben und in doppelte Anführungszeichen eingeschlossen werden.
Benutzer von Systemen mit zusammengeschlossenen Datenbanken: DEFAULT kann in einer Klausel VALUES einer Anweisung INSERT nicht verwendet werden, wenn es sich bei deren Objekt um einen Kurznamen handelt.
Benutzeraktion: Geben Sie in der Klausel einen anderen Wert als NULL oder DEFAULT an. Wenn DEFAULT als Spaltenname verwendet wird, geben Sie ihn in Großbuchstaben an, und setzen Sie ihn in doppelte Anführungszeichen.
sqlcode: -584
sqlstate: 42608
SQL0585N | Der Schemenname "<schemenname>" darf nicht mehr als einmal im Funktionspfad stehen. |
Erläuterung: Der Funktionspfad enthält "<schemenname>" mehr als einmal. Der Funktionspfad darf jeden Schemennamen nur einmal enthalten.
Die Anweisung kann nicht verarbeitet werden.
Benutzeraktion: Löschen Sie die überschüssigen Vorkommen von "<schemenname>" aus dem Funktionspfad.
sqlcode: -585
sqlstate: 42732
SQL0586N | Die Gesamtlänge des Sonderregisters CURRENT FUNCTION PATH darf 254 Zeichen nicht überschreiten. |
Erläuterung: Das Sonderregister CURRENT FUNCTION PATH ist mit dem Typ VARCHAR(254) definiert. Der Inhalt der Zeichenfolge umfaßt alle Schemennamen, die jeweils in doppelte Anführungszeichen gesetzt und vom nächsten Schemennamen durch ein Komma getrennt sind. Die Gesamtlänge der Zeichenfolge aller Schemennamen im Sonderregister CURRENT FUNCTION PATH darf 254 Zeichen nicht überschreiten. Die Anweisung SET CURRENT FUNCTION PATH bzw. die Option FUNCPATH des Befehls PREP oder BIND, die diese Nachricht verursacht haben, würden diese Gesamtlänge überschreiten.
Die Anweisung oder der Befehl kann nicht verarbeitet werden.
Benutzeraktion: Löschen Sie Schemennamen, um die Gesamtlänge von 254 Zeichen nicht zu überschreiten. Wenn alle Schemennamen erforderlich sind, müssen möglicherweise einige benutzerdefinierte Funktionen konsolidiert werden, so daß nicht so viele Schemennamen im Sonderregister CURRENT FUNCTION PATH enthalten sein müssen.
sqlcode: -586
sqlstate: 42907
SQL0590N | Der Name "<name>", der in der Prozedur "<prozedur>" angegeben wurde, ist nicht eindeutig. |
Erläuterung: Der Name "<name>" ist als Parameter, SQL-Variable, Cursor, Marke oder Bedingung in der Prozedur "<prozedur>" angegeben. Der Name ist nicht eindeutig.
Benutzeraktion: Ändern Sie den Namen so, daß er eindeutig ist.
sqlcode: -590
sqlstate: 42734
SQL0595W | Die Isolationsstufe "<angeforderter-stand>" wurde in "<geänderter-stand>" geändert. |
Erläuterung: Die angegebene Isolationsstufe wird von DB2 nicht unterstützt. Sie wurde in die nächsthöhere Isolationsstufe geändert, die von DB2 unterstützt wird.
Benutzeraktion: Geben Sie eine von DB2 unterstützte Isolationsstufe an, um diese Warnnachricht zu vermeiden. DB2 unterstützt folgende Isolationsstufen: Wiederholtes Lesen (RR - Repeatable Read), Lesestabilität (RS - Read Stability), Cursorstabilität (CS - Cursor Stability) und Nicht festgeschriebener Lesevorgang (UR - Uncommitted Read).
sqlcode: +595
sqlstate: 01526
SQL0598W | Der bestehende Index "<name>" dient als Index für den primären Schlüssel oder einen eindeutigen Schlüssel. |
Erläuterung: Für die Anweisung ALTER TABLE, mit der ein primärer oder ein eindeutiger Schlüssel definiert wird, ist ein Index erforderlich. Der angegebene Index ist mit dem erforderlichen Index identisch.
Beim Erstellen eines Index für einen primären oder eindeutigen Schlüssel gilt eine Indexbeschreibung als identisch, wenn sie dieselben Spaltengruppe (in beliebiger Reihenfolge) wie der primäre oder der eindeutige Schlüssel angibt. Dabei ist es unerheblich, ob die Spalten aufsteigend oder absteigend sortiert sind und ob der Index als eindeutig definiert ist.
Die Anweisung wurde erfolgreich verarbeitet.
Benutzeraktion: Keine Maßnahme erforderlich.
sqlcode: +598
sqlstate: 01550
SQL0599W | Für einen einzigartigen, auf einem Datentyp für lange Zeichenfolgen basierenden Datentyp können keine Vergleichsfunktionen erstellt werden. |
Erläuterung: Für einen einzigartigen, auf einem Datentyp für lange Zeichenfolgen basierenden Datentyp (BLOB, CLOB, DBCLOB, LONG VARCHAR oder LONG VARGRAPHIC) können keine Vergleichsfunktionen erstellt werden, da die entsprechenden Funktionen für die genannten integrierten Datentypen nicht
Dies ist eine Warnnachricht. Die Anweisung wurde erfolgreich verarbeitet.
Benutzeraktion: Keine Maßnahme erforderlich.
sqlcode: +599
sqlstate: 01596