Ansicht
Dokumentation

ABAPEXEC_CURSOR - EXEC CURSOR

ABAPEXEC_CURSOR - EXEC CURSOR

SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- 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 )