Ansicht
Dokumentation
ABAPEXEC_CURSOR - EXEC CURSOR
SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up BAL Application Log DocumentationDiese Dokumentation steht unter dem Copyright der SAP AG.
- OPEN, FETCH, CLOSE
In eingebettetem Native SQL können ähnliche Anweisungen zum Lesen von Daten über einen
Datenbank-Cursor angegeben werden wie in
.
EXEC SQL.
OPEN dbcur FOR SELECT ...
ENDEXEC.
Wirkung
Öffnet einen Datenbank-Cursor dbcur. Für dbcur kann auch eine flache zeichenartige Hostvariable angegeben werden.
Hinweis
Die Anzahl von gleichzeitig geöffneten Datenbank-Cursor ist plattformabhängig beschränkt.
Ein Versuch, zu viele Datenbank-Cursor zu öffnen, führt zu einer Ausnahme der Klasse CX_SY_NATIVE_SQL_ERROR.
EXEC SQL.
FETCH NEXT dbcur INTO ...
ENDEXEC.
Wirkung
Liest Daten über einen geöffneten Datenbank-Cursor dbcur in die hinter INTO angegebenen
Hostvariablen.
EXEC SQL.
CLOSE dbcur
ENDEXEC.
Wirkung
Schließt einen geöffneten Datenbank-Cursor dbcur.
Wenn über FETCH keine Zeile gelesen werden kann, wird sy-subrc von ENDEXEC auf 4 gesetzt. Das Systemfeld sy-dbcnt wird nach einer FETCH-Anweisung auf die Anzahl der bis dahin über den betreffenden Cursor gelesenen Zeilen gesetzt. Wenn dabei ein Überlauf eintritt, weil die Anzahl der Zeilen größer als 2.147.483.647 ist, wird sy-dbcnt auf -1 gesetzt.
Hinweis
Es hängt von dem verwendeten Datenbanksystem ab, ob der Datenbank-Cursor auf der Datenbank nach
der Entnahme der letzten Zeile der Ergebnismenge implizit geschlossen wird oder nicht. Deshalb empfiehlt sich immer die explizite Verwendung der Anweisung CLOSE dbcur.
Beispiel
Auslesen mehrerer Zeilen aus der Datenbanktabelle SPFLI über Cursor-Behandlung und Hostvariablen
in statischem Native SQL. Wenn Zeilen gefunden wurden, wird sy-subrc auf 0 gesetzt und sy-dbcnt für jede gelesene Zeile um 1 erhöht.
CPI1466 during Backup Addresses (Business Address Services)
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 3064 Date: 20240426 Time: 045836 sap01-206 ( 49 ms )