Freigeben über


Datenanbieter für häufige Fehler von DB2

Die Datenanbieter für DB2 verwenden die gespeicherte IBM SQLCAMESSAGE-Prozedur, mit der detaillierte Fehlermeldungen ausgegeben werden. Um dieses Feature zu verwenden, sollten Sie die Datenquelle so konfigurieren, dass sie einen EBCDIC-Wert für Host CCSID verwendet.

Die folgende Tabelle beschreibt DB2-Serverfehler, die ggf. auftreten, sowie die Aktionen, die zu deren Behebung ausgeführt werden müssen.

SQLSTATE SQLCODE `Message` BESCHREIBUNG
42601 -104 Unzulässiges Symbol.

Das Token war ungültig. Unerwartetes Token.

Im folgenden <Text> wurde ein unerwartetes Tokentoken <> gefunden. Zu den erwarteten Token kann folgendes gehören: <token-list>.
Ursache: Der Server kann keine SQL-Anweisung ausführen, die unzulässige, ungültige oder unerwartete Symbole oder Token enthält.

Aktion: Überprüfen Sie die SQL-Syntax mithilfe des IBM DB2 SQL-Referenzhandbuchs für die jeweilige IBM DB2-Plattform und -Version. Überprüfen Sie, ob die Datenverbraucheranwendung nicht unterstützte durch Trennzeichen getrennte Objektbezeichner (z. B. eckige Klammern ([<Objektname>]) im Gegensatz zu unterstützten Trennzeichen (doppelte Anführungszeichen) verwendet.
42602 -113 UNGÜLTIGES ZEICHEN GEFUNDEN IN: <string>, REASON CODE <reason-code>.

Es wurde ein Zeichen gefunden, das in Namen ungültig ist.

<identifier> enthält ein Zeichen, das nicht zulässig ist oder keine Zeichen enthält.
Ursache: Der Server kann keine SQL SET CURRENT SQLID-Anweisung verarbeiten, wenn der Client eine Verbindung mit dem DB2-Server herstellt.

Aktion: Überprüfen Sie die Verbindungsinformationen, um sicherzustellen, dass der Wert von Standardbezeichner mit der DB2-Auflistung übereinstimmt, in der das Objekt katalogisiert ist. Weitere Informationen finden Sie unter Standardqualifizierer.
42802 -117 DIE ANZAHL DER ZUGEWIESENEN WERTE IST NICHT GLEICH DER ANZAHL DER ANGEGEBENEN ODER IMPLIZIERTEN SPALTEN.

Die Anweisung enthält eine falsche Anzahl von Werten.

Die Anzahl der zugewiesenen Werte ist nicht gleich der Anzahl der angegebenen oder implizierten Spalten oder Variablen.
Ursache: Der Server kann eine SQL INSERT-Anweisung nicht ausführen, wenn die Anzahl der angegebenen Werte nicht gleich der Anzahl der Spalten in der/den Tabelle(n) ist.

Aktion: Vergewissern Sie sich, dass die Anzahl der Spalten mit den Objekten in der SQL-Anweisung übereinstimmt, indem Sie den Systemkatalog (z. B. SYSIBM.SYSCOLUMNS) abfragen oder eine Clientschemaabfrage (z. B. OLE DB IDBSchemaRowsets::GetSchemas(DBSCHEMA_COLUMNS) oder ADO.NET MsDb2Connection.GetSchema(Columns)) ausführen.
22007 -181 DIE ZEICHENFOLGEDARSTELLUNG EINES DATETIME-WERTS IST KEIN GÜLTIGER DATETIME-WERT

Der Wert in der Datums-, Uhrzeit oder Zeitstempel-Zeichenfolge ist ungültig.

Die Zeichenfolgedarstellung eines datetime-Werts liegt außerhalb des Gültigkeitsbereichs.
Ursache: Der Server kann die SQL-Anweisung nicht ausführen, wenn ein DATETIME-Wert falsch formatiert ist oder außerhalb des Gültigkeitsbereichs liegt.

Aktion: Überprüfen Sie, ob die DATETIME-Werte innerhalb der unterstützten Bereiche liegen: 0001-9999 für das Jahr, 1-12 für den Monat, 28/29/30/31 für den Tag (abhängig vom Tag und dem Schaltjahr), 0-24 für die Stunde (12 für die USA), 0-59 für die Minute, 0-59 für die Sekunde und 0-999999 für die Mikrosekunde. Überprüfen Sie die Verbindungsinformationen, um sicherzustellen, dass die Option DateTime As Date auf True festgelegt ist, um den Client anzuweisen, den Zeitteil der Windows DateTime-Datenwerte zu löschen, die DB2-Zeitstempeldatenwerten zugeordnet sind, sodass die DB2-Datenbank diese Werte als DB2 Date-Datenwerte ablesen kann. Weitere Informationen finden Sie unter dem Thema DateTime As Date.
42704 -204 <schema>.<object> ist ein nicht identifizierter Name.

Ein nicht definierter Objekt- oder Einschränkungsname wurde erkannt.

<name> ist ein nicht definierter Name.
Grund: Der Server kann keine SQL-Anweisung ausführen, die auf ein ungültiges <Schema> verweist.<Objektname> .

Aktion: Überprüfen Sie den in der SQL-Anweisung angegebenen Objektnamen. Überprüfen Sie die Verbindungsinformationen, um sicherzustellen, dass der Wert von Standardbezeichner mit der DB2-Auflistung übereinstimmt, in der das Objekt katalogisiert ist. Weitere Informationen finden Sie unter Standardqualifizierer.
42703 -206 <NAME> IST IN DEM KONTEXT UNGÜLTIG, IN DEM ER VERWENDET WIRD

Spaltenname <> nicht in den angegebenen Tabellen.

<name> ist in dem Kontext, in dem er verwendet wird, ungültig.
Ursache: Der Server kann eine SQL-Anweisung nicht ausführen, wenn ein angegebener Spaltenname keine Spalte der Quell- oder Zieltabelle oder Ansicht ist, auf die in der Anweisung verwiesen wird.

Aktion: Vergewissern Sie sich, dass die Spaltenverweise mit den Objekten in der SQL-Anweisung übereinstimmen, indem Sie den Systemkatalog (z. B. SYSIBM.SYSCOLUMNS) abfragen oder eine Clientschemaabfrage (z. B. OLE DB IDBSchemaRowsets::GetSchemas(DBSCHEMA_COLUMNS) oder ADO.NET MsDb2Connection.GetSchema(Columns)) ausführen.
08S01 -360 Der Hostressource konnte nicht gefunden werden. Stellen Sie sicher, dass der Wert des Anfangskatalogs mit dem Hostressourcennamen übereinstimmt. Ursache: Der Server konnte den Client nicht mit der angeforderten DRDA RDBNAM (Relational Datebase Name = Name der relationalen Datenbank) verbinden.

Aktion: Überprüfen Sie die Verbindungsinformationen, um sicherzustellen, dass der Wert des Anfangskatalogs mit db2 für z/OS-Speicherortname, DB2 für den Verzeichniseintrag für relationale IBM-Datenbanken (RDBDIRE) oder DB2 für Den Namen der Windows-Datenbank übereinstimmt. Weitere Informationen dazu finden Sie unter Anfangskatolg.
42884 -440 IM AKTUELLEN PFAD WURDE KEIN <Routinetyp> MIT DEM NAMEN <ROUTINENAME> MIT KOMPATIBLEN ARGUMENTEN GEFUNDEN.

Es wurde keine Routine mit dem angegebenen Namen und kompatiblen Argumenten gefunden.

Es wurde keine autorisierte Routine mit dem Namen <routine-name> vom Typ <routine-type> mit kompatiblen Argumenten gefunden.
Grund: Der Server kann keine SQL CALL-Anweisung ausführen, die die falsche Anzahl von Argumenten oder ungültige Parameterdatentypen enthält, oder auf ein ungültiges <Schema> verweist.<Objektname> .

Aktion: Überprüfen Sie die Anzahl der Argumente. Überprüfen Sie die Parameterdatentypen. Überprüfen Sie den in der SQL-Anweisung angegebenen Objektnamen. Überprüfen Sie die Verbindungsinformationen, um sicherzustellen, dass der Wert von Standardbezeichner mit der DB2-Auflistung übereinstimmt, in der das Objekt katalogisiert ist. Weitere Informationen finden Sie unter Standardqualifizierer.
24501 -501 DER IN EINER FETCH- ODER CLOSE-ANWEISUNG IDENTIFIZIERTE CURSOR IST NICHT GEÖFFNET.

Cursorcursorname <> nicht geöffnet.

Der in einer FETCH- oder CLOSE-Anweisung angegebene Cursor ist nicht geöffnet, oder eine Cursorvariable in einem skalaren Cursorfunktionsverweis ist nicht geöffnet.
Ursache: Der Server kann eine SQL SELECT- oder CALL-Anweisung nicht ausführen, die einen FETCH- oder CLOSE-Vorgang für einen Cursor erfordert, der derzeit nicht geöffnet ist.

Aktion: Überprüfen Sie die Anwendung, um zu ermitteln, ob sie eine COMMIT- oder ROLLBACK-Anweisung ausgibt, die den Cursor ggf. schließt. Überprüfen Sie, ob eine zuvor ausgegebene Rückgabemeldung vorhanden ist, die ggf. angibt, dass der Server den Cursor automatisch basierend auf einem Systemereignis (z. B. SQLCODE -404, -652, -679, -802, -901, -904, -909, -910, -911, -913 oder -952) geschlossen hat. Überprüfen Sie die Verbindungsinformationen, um sicherzustellen, dass die Option AutoCommit als Wahr angegeben wurde, wenn mit einigen systemeigenen Consumern gearbeitet wird (z. B. SQL Server Integration Services und Distributed Query Processor) und Remotearbeitseinheit-Transaktionen verwendet werden. Weitere Informationen finden Sie unter AutoCommit.
42501 -551 Keine Autorisierung für das Objekt.

Nicht autorisiert, objektname <> in <ressourcenname> typ <resource-type>.

<Die Autorisierungs-ID> verfügt nicht über die erforderliche Autorisierung oder Berechtigung zum Ausführen von Vorgangsvorgängen><für Objektname<>.
Ursache: Der Server kann eine SQL SELECT- oder CALL-Anweisung nicht ausführen, die eine CURSOR-Anweisung erfordert, die in einem statischen SQL-Paket gespeichert ist, für das der aktuelle Benutzer nicht autorisiert ist. Der Client benötigt vordefinierte SQL-Anweisungen in Abschnitten innerhalb von statischen DB2 SQL-Paketen, um die Ausführung von SQL SELECT-Anweisungen unterstützen zu können. Der Client definiert standardmäßig automatisch ein Paket, wenn der Benutzer zur Laufzeit die BIND-, EXECUTE- und GRANT-Autorität für Pakete über die DB2-Auflistung besitzt, die in der Verbindungseigenschaft Paketauflistung angegeben wird.

Aktion: Überprüfen Sie die Verbindungsinformationen, um sicherzustellen, dass der Wert Paketauflistung mit der DB2-Auflistung übereinstimmt, in der HIS 2010-Pakete für die Ausführung durch den aktuellen Benutzerbezeichner oder öffentliche Ausführung (PUBLIC) definiert werden. Erstellen Sie manuell HIS 2010-Pakete für die Ausführung durch die aktuelle Benutzer-ID oder die öffentliche Ausführung (PUBLIC), indem Sie das Datenzugriffstool, den Datenquellen-Assistenten, Datenverknüpfungen oder die Datenzugriffsbibliothek verwenden. Stellen Sie eine Verbindung mit DB2 mithilfe einer Autorisierungs-ID her, die berechtigt ist, automatisch HIS 2010-Pakete zu erstellen (CREATE-, BIND- und EXECUTE-Berechtigungen). Weitere Informationen finden Sie unter Package Collection.
42501

42602
-567

-567
<bind-type> AUTHORIZATION ERROR USING <auth-id> AUTHORITY PACKAGE = <package-name> PRIVILEGE = <privilege>.

Der Autorisierungsname &1 ist unzulässig.

<authorization-ID> ist keine gültige Autorisierungs-ID.
Ursache: Der Server kann keine SQL SELECT-Anweisung ausführen, wenn das Benutzerkonto nicht berechtigt ist, die erforderlichen DB2-Pakete zu erstellen oder auszuführen.

Aktion: Überprüfen Sie die Verbindungsinformationen, um sicherzustellen, dass der Wert Paketauflistung mit der DB2-Auflistung übereinstimmt, in der HIS 2010-Pakete für die Ausführung durch den aktuellen Benutzerbezeichner oder öffentliche Ausführung (PUBLIC) definiert werden. Erstellen Sie manuell HIS 2010-Pakete für die Ausführung durch die aktuelle Benutzer-ID oder die öffentliche Ausführung (PUBLIC), indem Sie das Datenzugriffstool, den Datenquellen-Assistenten, Datenverknüpfungen oder die Datenzugriffsbibliothek verwenden. Stellen Sie eine Verbindung mit DB2 mithilfe einer Autorisierungs-ID her, die berechtigt ist, automatisch HIS 2010-Pakete zu erstellen (CREATE-, BIND- und EXECUTE-Berechtigungen). Weitere Informationen finden Sie unter Package Collection.
42710 -601 DER NAME (VERSIONS- ODER VOLUMESERIENNUMMER) DES ZU DEFINIERENDEN OBJEKTS ODER DAS ZIEL EINER RENAME-ANWEISUNG IST IDENTISCH MIT DEM VORHANDENEN NAMEN (VERSION ODER VOLUMESERIENNUMMER) <OBJEKTNAME> DES OBJEKTTYPS OBJECT-TYPE<>.

<Name> im <Schematyptyp>><ist bereits vorhanden.

Der Name des zu erstellenden Objekts ist identisch mit dem vorhandenen Namen <des Typtyps<>.>
Ursache: Der Server kann ein Objekt nicht benennen, wenn dieser Name bereits für ein anderes Objekt des gleichen Typs in Gebrauch ist.

Aktion: Benennen Sie das Objekt im Vergleich mit den vorhandenen Datenbankobjekten eindeutig.
42721 -725 FÜR DAS SPEZIELLE REGISTER <AM> SPEICHERORT <> WURDE EIN UNGÜLTIGER WERT ANGEGEBEN. Ursache: Der Server kann keine SET CURRENT SQLID-Anweisung verarbeiten, wenn diese einen ungültigen Wert für den Benutzerbezeichner oder den Auflistungsnamen enthält.

Aktion: Überprüfen Sie die Verbindungsinformationen, um sicherzustellen, dass der Wert von Standardbezeichner mit der DB2-Auflistung übereinstimmt, in der das Objekt katalogisiert ist. Weitere Informationen finden Sie unter Standardqualifizierer.
23505 -803 EIN EINGEFÜGTER ODER AKTUALISIERTER WERT IST UNGÜLTIG, DA DER INDEX IM INDEXBEREICHSNAME <> SPALTEN DER TABELLE EINSCHRÄNKT, SODASS KEINE ZWEI ZEILEN DOPPELTE WERTE IN DIESEN SPALTEN ENTHALTEN KÖNNEN. RID OF EXISTING ROW IS X <row identifier>

Es wurde ein doppelter Schlüsselwert angegeben.

Mindestens ein Wert in der INSERT-Anweisung, der UPDATE-Anweisung oder der Fremdschlüsselaktualisierung, die durch eine DELETE-Anweisung verursacht wird, ist ungültig, da der Primärschlüssel, die eindeutige Einschränkung oder der eindeutige Index, der durch index-ID> identifiziert wird<, den Tabellennamen <> an doppelten Werten für den Indexschlüssel hindert.
Ursache: Der Server kann keine INSERT- oder UPDATE-Anweisung für eine Tabelle ausführen, die durch einen UNIQUE INDEX eingeschränkt ist, wenn die Anweisung zu doppelten Werten führt.

Aktion: Vergewissern Sie sich, dass die Datenwerte keine Einschränkung verletzen, indem Sie den Systemkatalog (z. B. SYSIBM.SYSCOLUMNS) abfragen oder eine Clientenschemaabfrage (z. B. OLE DB IDBSchemaRowsets::GetSchemas(DBSCHEMA_INDEXES) oder ADO.NET MsDb2Connection.GetSchema(Indexes)) ausführen.
51002 -805 SPEICHERORTNAME> DES DBRM ODER PAKETNAMENS<.<collection-id>.<dbrmname>.<Konsistenztoken> NICHT IM Planplannamen <>GEFUNDEN. GRUNDGRUND<>.

SQL-Paketname <> im <Sammlungsnamen> nicht auf DRDA-Server gefunden.

Der Paketname <> wurde nicht gefunden.
Ursache: Der Server konnte das statische SQL-Paket von DB2 nicht finden, das vom DB2-Client für die Ausführung einer dynamischen SQL SELECT-Anweisung benötigt wird.

Aktion: Überprüfen Sie die Verbindungsinformationen, um sicherzustellen, dass der Wert Paketauflistung mit der DB2-Auflistung übereinstimmt, in der HIS 2010-Pakete für die Ausführung durch die aktuelle Benutzer-ID oder öffentliche Ausführung (PUBLIC) definiert werden. Weitere Informationen finden Sie unter Package Collection.
58004 -901 NICHT ERFOLGREICHE AUSFÜHRUNG AUFGRUND EINES SYSTEMFEHLERS, DER NICHT DIE ERFOLGREICHE AUSFÜHRUNG NACHFOLGENDER SQL-ANWEISUNGEN VERHINDERT.

SQL-Systemfehler.

Fehler der SQL-Anweisung aufgrund eines nicht schwerwiegenden Systemfehlers. Nachfolgende SQL-Anweisungen können verarbeitet werden. (Grundgrund<>.)
Ursache: Serverfehler beim Ausführen der aktuellen SQL-Anweisung. Nachfolgende SQL-Anweisungen sind jedoch ggf. erfolgreich. Die Ursache dieses Fehlers ist ggf. ein Transaktionscommitfehler in einer verteilten Arbeitseinheit oder ein Updatefehler aufgrund einer Einschränkung, oder die SQL-Anweisung enthält eine ungültige Längenangabe (0 oder größer als maximale Länge).

Der Benutzer sollte den Ursachencode (wenn verfügbar) überprüfen, um festzustellen, ob weitere Benutzer- oder Administratoraktionen erforderlich sind. Außerdem sollte er feststellen, wie der Fehler durch Ändern der Anwendung, der Transaktion oder des Befehls selbst vermieden werden kann.
57011 -904 NICHT ERFOLGREICHE AUSFÜHRUNG AUFGRUND EINER NICHT VERFÜGBAREN RESSOURCE. REASON <reason-code>, TYPE OF RESOURCE resource-type><, AND RESOURCE NAME <resource-name resource-name>.

Die Ressourcengrenze wurde überschritten.

Nicht erfolgreiche Ausführung aufgrund einer nicht verfügbaren Ressource. Ursachencode: <Grundcode>, Ressourcentyp: <Ressourcentyp> und Ressourcenname: <Ressourcenname>.
Ursache: Der Server kann die SQL-Anweisung nicht ausführen, weil das Objekt der Anweisung nicht verfügbar ist.

Aktion: Vergewissern Sie sich, dass das Objekt und die Datenbank verfügbar sind und keinen Deadlock aufweisen, offline sind oder einen anderen nicht verfügbaren Status besitzen.
57033 -913 NICHT ERFOLGREICHE AUSFÜHRUNG AUFGRUND EINES DEADLOCKS ODER TIMEOUTS. REASON CODE <reason-code>, TYPE OF RESOURCE resource-type><, AND RESOURCE NAME <resource-name resource-name>.

Zeilen- oder Objektobjektname im verwendeten Ressourcennamentyp<>>.<<>

Nicht erfolgreiche Ausführung aufgrund eines Deadlocks oder Timeouts. Reason code <reason-code>.
Ursache: Der Server kann die SQL-Anweisung nicht ausführen, weil das Objekt der Anweisung nicht verfügbar ist.

Aktion: Vergewissern Sie sich, dass das Objekt und die Datenbank verfügbar sind und keinen Deadlock aufweisen, offline sind oder einen anderen nicht verfügbaren Status besitzen. Führen Sie ein Commit oder Rollback des vorherigen Vorgangs aus, und trennen Sie dann die Verbindung mit der Datenbank. Überprüfen Sie den Serverursachencode, um weitere Informationen zum Status des Objekts zu erhalten (z. B. gibt der Ursachencode 00C90088 von DB2 für z/OS einen Deadlock an, während 00C9008E ein Timeout anzeigt).