Auf einen Blick: Der SQL-Kommunikationsbereich (SQLCA) in Db2 12 ist entscheidend für die Verwaltung der SQL-Ausführung und Fehlerbehandlung, da er wichtige Felder wie SQLCODE und SQLSTATE enthält, um Erfolg oder Misserfolg von Operationen anzuzeigen.
- SQLCA stellt wesentliche Fehler- und Warnhinweise bereit.
- Es hilft bei der Diagnose von Problemen während der Ausführung von SQL-Anweisungen.
| Assembler-, COBOL- oder PL/I-Name | C-Name | Datentyp | Zweck |
| SQLCAID | sqlcaid | CHAR(8) | 'Eyecatcher' für Speicher-Dumps, der den Text 'SQLCA' enthält. Sechstes Byte ist 'L', wenn Zeilennummerninformationen durch das Parsen einer dynamischen Anweisung oder einer nativen SQL-Prozedur zurückgegeben werden. Wird nicht gesetzt, wenn eine externe SQL-Prozedur verarbeitet wird. |
| SQLCABC | sqlcabc | GANZZAHL | Enthält die Länge des SQLCA: 136 |
| SQLCODE | SQLCODE | GANZZAHL | Enthält den SQL-Rückgabecode. 0 = Erfolgreiche Ausführung Positiv = Erfolgreiche Ausführung, jedoch mit Ausnahmebedingung Negativ = Fehlerbedingung |
| SQLERRML | sqlerrml | SMALLINT | Längenindikator für SQLERRMC im Bereich 0 bis 70,0 bedeutet, dass der Wert von SQLERRMC nicht relevant ist |
| SQLERRMC | sqlerrmc | VARCHAR(70) | Enthält ein oder mehrere Tokens, getrennt durch X'FF', die in den Beschreibungen von Fehlerbedingungen durch Variablen ersetzt werden. Sie kann abgeschnittene Token enthalten. Eine Nachrichtenlänge von 70 Byte weist auf eine mögliche Abkürzung hin. |
| SQLERRP | sqlerrp | CHAR(8) | Liefert eine Produktsignatur und im Falle eines Fehlers diagnostische Informationen wie den Namen des Moduls, das den Fehler erkannt hat. Die ersten drei Zeichen sind 'DSN' |
| SQLERRD(1) | sqlerrd[0] | GANZZAHL | Für einen empfindlichen statischen Cursor enthält er die Anzahl der Zeilen in einer Ergebnistabelle, wenn die Cursorposition nach der letzten Zeile liegt (also wenn SQLCODE gleich +100 ist). Kann auch einen internen Fehlercode enthalten. |
| SQLERRD(2) | sqlerrd[1] | GANZZAHL | Für einen empfindlichen statischen Cursor enthält er die Anzahl der Zeilen in einer Ergebnistabelle, wenn die Cursorposition nach der letzten Zeile liegt (also wenn SQLCODE gleich +100 ist). Kann auch einen internen Fehlercode enthalten. |
| SQLERRD(3) | sqlerrd[2] | GANZZAHL | Enthält die Anzahl der Zeilen, die nach einer INSERT, MERGE, UPDATE oder DELETE-Anweisung gelöscht, eingefügt oder aktualisiert werden konnten. Die Zahl schließt Zeilen aus, die von Triggern oder referenziellen Integritätseinschränkungen betroffen sind; die Zahl schließt Zeilen aus, die von Triggern, referenziellen Integritätseinschränkungen oder eingefügten Zeilen aus der Verarbeitung einer FOR-Klausel für einen BUSINESS_TIME Zeitraum resultieren. Für das OPEN eines Cursors für eine SELECT mit einer Datenänderungsanweisung oder für eine SELECT enthält sqlerrd(3) die Anzahl der Zeilen, die von einer EMDEDDED Data Change Statement betroffen sind. Der Wert ist 0, wenn die SQL-Anweisung fehlschlägt, was bedeutet, dass alle Änderungen bei der Ausführung der Anweisung aufgehoben wurden. Für eine DELETE-Anweisung ist der Wert -1, wenn die Operation eine Massenlöschung aus einer Tabelle in einem segmentierten Tabellenraum ist und die DELETE-Anweisung keine Auswahlkriterien enthielt. Wenn das Löschen gegen eine Ansicht gerichtet war, enthielten weder die DELETE-Anweisung noch die Definition der Ansicht Auswahlkriterien. Für eine TRUNCATE-Anweisung ist der Wert -1. Für eine REFRESH TABLE-Anweisung enthält SQLERRD(3) die Anzahl der Zeilen, die in die materialisierte Abfragetabelle eingefügt wurden. Für ein zeilensetorientiertes FETCH enthält dies die Anzahl der abgerufenen Zeilen. Für SQLCODES -911 und -913 enthält SQLERRD(3) den Reason-Code für das Timeout oder die Deadlock. Wenn beim Parsen einer dynamischen Anweisung, beim Parsen von Binding oder beim Ausführen einer nativen SQL-Prozedur ein Fehler auftritt, enthält SQLERRD(3) die Zeilennummer, in der der Fehler aufgetreten ist. Das sechste Byte von SQLCAID muss 'L' sein, damit dies eine gültige Zeilennummer ist. Dieser Wert ist nur dann sinnvoll, wenn die Anweisungsquelle neue Zeilen-Kontrollzeichen enthält. Diese Information wird für eine externe SQL-Prozedur nicht zurückgegeben |
| SQLERRD(4) | sqlerrd[3] | GANZZAHL | enthält im Allgemeinen Timerons, einen kurzen Gleitkommawert, der eine grobe Schätzung der benötigten Ressourcen angibt. Er spiegelt keine Schätzung der benötigten Zeit wider. Bei der Vorbereitung einer dynamisch definierten SQL-Anweisung können Sie dieses Feld als Indikator für die relativen Kosten der vorbereiteten SQL-Anweisung verwenden. Für eine bestimmte Anweisung kann diese Zahl je nach Änderungen der Statistiken im Katalog variieren. Kann sich auch zwischen den Versionen von DB2 für z/OS ändern. |
| SQLERRD(5) | sqlerrd[4] | GANZZAHL | Enthält die Position oder Spalte eines Syntaxfehlers für eine PREPARE oder EXECUTE IMMEDIATE Anweisung |
| SQLERRD(6) | sqlerrd[5] | GANZZAHL | Interner Fehlercode |
| SQLWARN0 | SQLWARN0 | CHAR(1) | W, wenn mindestens ein anderer Indikator ebenfalls ein W enthält; ansonsten enthält er ein Leerzeichen |
| SQLWARN1 | SQLWARN1 | CHAR(1) | W, wenn der Wert einer String-Spalte bei der Zuweisung zu einer Host-Variable abgeschnitten wurde. Enthält ein N für nicht scrollbare Cursor und S für scrollbare Cursor nach der OPEN CURSOR- oder ALLOCATE CURSOR-Anweisung. Wenn der Subsystemparameter DISABSCL auf ja gesetzt ist, wird das Feld für nicht scrollbare Cursor nicht auf N gesetzt |
| SQLWARN2 | SQLWARN2 | CHAR(1) | W, wenn Nullwerte aus dem Argument einer Spaltenfunktion eliminiert würden; nicht unbedingt auf W gesetzt für die MIN-Funktion, da ihre Ergebnisse nicht von der Eliminierung von Nullwerten abhängen |
| SQLWARN3 | SQLWARN3 | CHAR(1) | W, wenn die Anzahl der Ergebnisspalten größer ist als die Anzahl der Host-Variablen. Z, wenn in der ASSOCIATE LOCATORS-Anweisung weniger Standorte angegeben wurden als die gespeicherte Prozedur, die zurückgegeben wurde. |
| SQLWARN4 | SQLWARN4 | CHAR(1) | W, falls eine vorbereitete UPDATE- oder DELETE-Anweisung keine WHERE-Klausel enthält. Für scrollbaren Cursor, D für sensible dynamische Cursor, I für unsensible Cursor und S für sensitive Cursor nach der OPEN CURSOR- oder ALLOCATE CURSOR-Anweisung; leer, wenn nicht scrollbar. Wenn DSNZPARM DISABSCL auf YA gesetzt ist, dann auf N für nicht scrollbare Cursor |
| SQLWARN5 | SQLWARN5 | CHAR(1) | W, falls die SQL-Anweisung nicht ausgeführt wurde, weil sie keine gültige SQL-Anweisung in DB2 für z/OX ist. Der Zeichenwert 1 (nur lesbar), 2 (lesen und löschen) oder 3 (lesen, löschen und aktualisieren), um die Fähigkeit des Cursors nach der OPEN CURSOR- oder ALLOCATE CURSOR-Anweisung widerzuspiegeln, wenn DISABSCL auf YA gesetzt ist, wird das Feld für nicht scrollbare Cursor nicht auf N gesetzt |
| SQLWARN6 | SQLWARN6 | CHAR(1) | W, wenn die Hinzufügung einer Monats- oder Jahresdauer zu einem DATUM- oder ZEITSTEMPELWERT einen ungültigen Tag ergibt. Zeigt an, dass der Wert des Tages auf den letzten Tag des Monats geändert wurde, um das Ergebnis gültig zu machen |
| SQLWARN7 | SQLWARN7 | CHAR(1) | W, wenn eine oder mehrere von null verschiedene Ziffern aus dem Bruchteil einer als Operanden verwendeten Zahl einer dezimalen Multiplikations- oder Teilungsoperation entfernt wurden |
| SQLWARN8 | SQLWARN8 | CHAR(1) | W, wenn ein Zeichen, das nicht umgewandelt werden kann, durch ein Ersatzzeichen ersetzt wurde |
| SQLWARN9 | SQLWARN9 | CHAR(1) | W, wenn arithmetische Ausnahmen während der COUNT- oder COUNT_BIG-Verarbeitung ignoriert wurden. Z, wenn die gespeicherte Prozedur mehrere Ergebnismengen zurückgibt. |
| SQLWARNA | SQLWARNA | CHAR(1) | W, wenn mindestens ein Zeichenfeld der SQLCA- oder SQLDA-Namen oder -Labels aufgrund eines Zeichenkonvertierungsfehlers ungültig ist |
| SQLSTATE | sqlstate | CHAR(5) | Ein Rückgabecode für das Ergebnis der letzten Ausführung einer SQL-Anweisung |
Haftungsausschluss: Dieser Db2® 12 für z/OS Referenzleitfaden wurde entwickelt, um Nutzern bei ihren täglichen Aktivitäten bei der Verwaltung und Programmierung in Db2 für z/OS zu helfen. Mit den Inhalten dieses Leitfadens gibt es keine ausdrücklich oder stillschweigenden Garantien. Wir möchten den Nutzern eine qualitativ hochwertige und nützliche Referenz bereitstellen. Bitte informieren Sie uns über Fehler oder Fehler in diesem Referenzhandbuch unter blogs@bmc.com. Db2 ist eine eingetragene Marke der IBM Corporation.
Db2-Leitfaden
- Db2 12 für z/OS: Eine Einführung
- Skalare Funktionen in Db2 12
- Wie man IBM<sup>®</sup> Syntaxdiagramme für Db2 12 liest
- Sprachelemente in Db2 12
- Aggregierte Funktionen in Db2 12
- Tabellen- und Zeilenfunktionen in Db2 12
- Anfragen in Db2 12
- Befehle in Db2 12
- SQL-Kontrollanweisungen in Db2 12
- Erkläre Tabellen in Db2 12
- DSNZPARMs in Db2 12
- Bindeparameter in Db2 12
- Db2-Grenzen in Db2 12
- SQL Kommunikationsbereich (SQLCA) in Db2 12
- REXX SQLCA in Db2 12
- Diagnoses in Db2 12 erhalten
- IFCIDS in Db2 12
- Katalogtabellen in Db2 12
- Ausnahmen in Db2 12
- XML-Schema-Repository-Tabellen in Db2 12
- Aktualisierungsfähige Katalogstatistiken in Db2 12
- IBM Utilities in Db2 12
- SQL Positive Return-Codes in Db2 12
- SQL-Fehlerrückgabecodes in Db2 12
Diese Beiträge sind meine eigenen und spiegeln nicht unbedingt die Position, Strategien oder Meinung von BMC wider.