Freigeben über


Problembehandlung bei statischem SQL für DB2

In diesem Thema werden häufige Fehler und Codierungsfehler beschrieben, die auftreten können, wenn Sie mit dem Feature für statische SQL für DB2-Pakete in Microsoft ADO.NET Provider for DB2 (Data Provider) arbeiten.

Häufige Fehler

In der folgenden Tabelle werden DB2-Serverfehler beschrieben, die zusammen mit den Aktionen auftreten können, die Sie ausführen müssen, um sie zu korrigieren.

SQLCODE Maßnahme
SQLCODE--104 (ungültige Anweisung) – Überprüfen und Abgleichen von Daten mit dem Datenbankschema.

– Stellen Sie sicher, dass die Befehlselemente mit dem Paketschema übereinstimmen.
SQLCODE--204 (Objekt nicht gefunden) Überprüfen Sie, ob die qualifizierten Objektnamen (vierteilig oder Alias) angegeben sind.
SQLCODE--440 (falsche Parameter) Stellen Sie sicher, dass die Befehlselemente mit dem Paketschema übereinstimmen.
SQLCODE--501 (Cursor nicht geöffnet) Stellen Sie sicher, dass der Befehl CALL STATIC enthält.
SQLCODE--551 (unzureichende Berechtigungen) Stellen Sie sicher, dass die Berechtigungen für CREATE-, BIND- und EXECUTE-Pakete festgelegt sind.
SQLCODE--601 (Objektname nicht eindeutig) Überprüfen Sie die Eindeutigkeit der Benennungskonvention.

Häufige Codierungsfehler

In der folgenden Tabelle werden allgemeine Codierungsfehler nach Featurebereich beschrieben.

Fläche BESCHREIBUNG
XML-Dokument - Für jeden Eingabeparameter ist ein Parameterelement erforderlich. Für jede Ausgabespalte ist ein Spaltenelement erforderlich.

- Die Cursornamen sollten in einem Paket eindeutig sein.

- Elemente sind nicht geschlossen oder stimmen nicht überein.
DB2 für IBM i Isolationsstufe In HIS 2010 wird die unterstützte Isolationsstufe no Commit (NC) unterstützt, die im XML-Dokument als "IsolationLevel="NoCommit" angegeben werden muss.
Gespeicherte Prozedur und Aliasüberlappung - Die Paketerstellung schlägt fehl, wenn der Paketname, die Abschnittsnummer oder der Paketalias nicht eindeutig sind.

- Wenn die Paketerstellung erfolgreich ist, der Aliasname jedoch mit dem Namen einer gespeicherten Prozedur identisch ist, kann ein Laufzeitfehler auftreten (z. B. SQLCODE--440 für ungültige Parameter). Alternativ kann der DB2-Server ein unerwartetes Resultset zurückgeben.
Kein Aliasname - Wenn die Metadatendatei keinen Aliasnamen enthält, führt der Microsoft-Client die Anweisung als gespeicherte Prozedur aus.

- Wenn eine gespeicherte Prozedur mit demselben Namen vorhanden ist, wird die gespeicherte Prozedur ausgeführt, und das Programm kann unerwartete Ergebnisse haben.

- Wenn keine gespeicherte Prozedur mit demselben Namen vorhanden ist, gibt der Datenbankserver einen Fehler zurück, dass der Objektname nicht definiert ist (SQLCODE -204).