REXX SQLCA in Db2 12

REXX SQLCA in Db2 12

  • Mainframe
6 Minuten Lesezeit Aktualisiert Apr 1, 2019

Auf einen Blick: REXX SQLCA in Db2 12 erklärt die SQL Communication Area (SQLCA)-Struktur, die für SQL-Operationen in Db2 für z/OS unerlässlich ist, und beschreibt seine Variablen und deren Funktionen.

  • Beschreibt SQLCA-Variablen wie SQLCODE und SQLSTATE.
  • Bietet Einblicke in die Fehlerbehandlung und Diagnostik in SQL-Operationen.
Variable Inhalt
SQLCODE Der SQL-Rückgabecode
SQLERRMC Ein oder mehrere Token, getrennt durch X'FF', die in den Beschreibungen von Fehlerbedingungen durch Variablen ersetzt werden. Es kann abgeschnittene Token enthalten. Eine Nachrichtenlänge von 70 Bytes weist auf eine mögliche Trunkierung hin.
SQLERRP Eine Produktsignatur und im Falle eines Fehlers diagnostische Informationen wie den Namen des Moduls, das den Fehler erkannt hat. Für DB2 oder z/OS lautet die Produktsignatur 'DSN'
SQLERRD.1 Für einen sensiblen statischen Cursor enthält 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 Für einen sensiblen statischen Cursor enthält 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 Enthält die Anzahl der Zeilen, die nach einer SQL-Datenänderungsanweisung für die Operation qualifiziert sind (aber keine Zeilen, die infolge von CASCADE-Löschung gelöscht wurden). Für das OPEN eines Cursors für eine SELECT mit einer SQL-Datenänderungsanweisung oder für eine SELECT INTO enthält sqlerrd(3) die Anzahl der Zeilen, die von der eingebetteten Datenänderungsanweisung betroffen sind. Setzen Sie auf 0, wenn die SQL-Anweisung fehlschlägt, was anzeigt, dass alle Änderungen bei der Ausführung der Anweisung aufgehoben wurden. Setzen Sie auf -1 für eine Massenlöschung aus einer Tabelle in einem segmentierten Tabellenraum, für eine abgekürzte Operation oder ein Löschen aus einer Ansicht, wenn weder die DELETE-Anweisung noch die Definition der Ansicht Auswahlkriterien enthielten. Für zeilensetorientierte FETCH-Anweisungen enthält dies die Anzahl der im Zeilensatz zurückgegebenen Zeilen. Für SQLCODES -911 und -913 enthält SQLERRD(3) den Ursachencode für den Timeout oder Deadlock. Nach erfolgreicher Ausführung der REFRESH TABLE-Anweisung enthält SQLERRD(3) die Anzahl der Zeilen, die in die materialisierte Abfragetabelle eingefügt wurden. Wenn beim Parsen einer dynamischen Anweisung ein Fehler auftritt oder beim Parsen, Binden oder Ausführen einer nativen SQL-Prozedur, enthält SQLERRD(3) die Zeilennummer, an 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 Zeilenkontrollzeichen enthält. Nicht für eine externe SQL-Prozedur zurückgegeben.
SQLERRD.4 Enthält im Allgemeinen Timerons, einen kurzen Gleitkommawert, der eine grobe Schätzung der benötigten Ressourcen angibt. Dieser Wert spiegelt keine Schätzung der Zeit wider, die für die Ausführung der SQL-Anweisung benötigt wird. Nachdem Sie eine SQL-Anweisung vorbereitet haben, 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. Vorbehaltlich Änderungen zwischen den Versionen von DB2 für z/OS.
SQLERRD.5 Die Position oder Spalte eines Syntaxfehlers für eine PREPARE oder EXECUTE IMMEDIATE Anweisung
SQLERRD.6 Ein interner Fehlercode
SQLWARN.0 Leer, wenn alle anderen Indikatoren leer sind; W, wenn mindestens ein Indikator ebenfalls ein W enthält
SQLWARN.1 W, wenn der Wert einer Zeichenkettenspalte bei der Zuweisung einer Host-Variablen abgeschnitten wurde
SQLWARN.2 W, wenn keine Werte aus dem Argument zu einer Spaltenfunktion eliminiert wurden; nicht unbedingt auf W für die MIN-Funktion gesetzt werden, da ihre Ergebnisse nicht von der Eliminierung von Nullwerten abhängen
SQLWARN.3 W, wenn die Anzahl der Ergebnisspalten größer ist als die Anzahl der Host-Variablen. Z, wenn die ASSOCIATE LOCATORS-Anweisung weniger Locatoren enthält als die gespeicherte Prozedur zurückgegeben
SQLWARN.4 W, wenn eine vorbereitete UPDATE- oder DELETE-Anweisung keine WHERE-Klausel enthält. Für einen scrollbaren Cursor enthält er ein D für sensible dynamische Cursor, I für unsensible Cursor und S für sensitive Cursors nach der OPEN CURSOR- oder ALLOCATE CURSOR-Anweisung, leer, wenn nicht scrollbar.
SQLWARN.5 W, falls die SQL-Anweisung nicht ausgeführt wurde, da in DB2 keine gültige SQL-Anweisung für z/OS ist. Zeichenwert 1 (nur lesbar), 2 (lesen und löschen) oder 4 (lesen, löschen und aktualisieren), um die Fähigkeit des Falls nach der OPEN CURSOR- oder ALLOCATE CURSOR-Anweisung widerzuspiegeln
SQLWARN.6 W, wenn die Hinzufügung einer Monats- oder Jahresdauer zu einem DATUM- oder ZEITSTEMPELWERT einen ungültigen Tag ergibt (Beispiel 31. Juni). Zeigt an, dass der Tageswert auf den letzten Tag des Monats geändert wurde, um das Ergebnis gültig zu machen
SQLWARN.7 W, wenn eine oder mehrere von null verschiedene Ziffern aus dem Bruchteil einer Zahl entfernt werden, die als Operand einer dezimalen Multiplikations- oder Teilungsoperation verwendet wurde
SQLWARN.8 W, wenn ein Zeichen, das nicht umgewandelt werden kann, durch ein Ersatzzeichen ersetzt wurde
SQLWARN.9 W, wenn arithmetische Ausnahmen während der COUNT- oder COUNT_BIG-Verarbeitung ignoriert wurden. Z, wenn das gespeicherte Verfahren mehrere Ergebnismengen zurückgab.
SQLWARN.10 W, falls mindestens ein Zeichenfeld der SQLCA aufgrund eines Zeichenumwandlungsfehlers ungültig ist
SQLSTATE 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.

Diese Beiträge sind meine eigenen und spiegeln nicht unbedingt die Position, Strategien oder Meinung von BMC wider.

Mehr aus Mainframe

Interessieren Sie sich für mehr von BMC?

The Brief ist unsere monatliche E-Mail zum Mainframe und zur Enterprise-Orchestrierung: Recherchen, Kundenberichte, Produktnachrichten, Events.

Mit der Registrierung für dieses Angebot bestätigen Sie, dass Sie die Datenschutzrichtlinie von BMC gelesen und zugestimmt haben.

Sie haben The Brief abonniert

Das Briefing umfasst die Mainframe- und Enterprise-Orchestrierung – BMC AMI und Control-M – sowie die Analystenforschung, Kundeneinsätze und Events in beiden Bereichen.