Ansicht
Dokumentation

CL_SQL_CLOB -

CL_SQL_CLOB -

RFUMSV00 - Advance Return for Tax on Sales/Purchases   Addresses (Business Address Services)  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Bei den meisten Datenbanksystemen können die Werte von BLOB und CLOB Spalten nicht direkt mit den sonst üblichen SQL-Mitteln bearbeitet werden, sondern es gibt spezielle Programmierschnittstellen, mit denen LOB-Werte gelesen und geschrieben werden können. Hierbei werden LOB-Werte durch sogenannte Lokatoren repräsentiert, über die dann der eigentliche Zugriff auf den LOB-Inhalt erfolgen kann. Beim Lesen einer Tabelle, die eine LOB-Spalte enthält, wird deshalb als Ergebniswert einer LOB-Spalte zunächst nur ein LOB-Lokator geliefert und erst danach kann unter Angabe dieses Lokators über spezielle Funktionen auf den LOB-Inhalt zugegriffen werden.

Eine Instanz der Klasse CL_SQL_CLOB repräsentiert eine CLOB Lokatorvariable, die mittels der Methode SET_PARAM_CLOB der Klassen CL_SQL_STATEMENT bzw. CL_SQL_RESULT_SET als Ein- bzw. Ausgabevariable an ein Statement- bzw. Result-Set-Objekt gebunden werden kann. Nach dem Erzeugen eines CL_SQL_BLOB Objektes ist dieses zunächst noch initial, d.h. es verweist noch nicht auf ein CLOB Objekt in der Datenbank. Erst nachdem es durch Aufruf der Methode SET_PARAM_CLOB als Ausgabevariable an ein Ergebnismengenobjekt (Instanz der Klasse CL_SQL_RESULT_SET) gebunden und eine Zeile der Ergebnismenge durch Ausführung der Methode NEXT (siehe Klasse CL_SQL_RESULT_SET) von der Datenbank gelesen wurde, enthält es eine gültige (logische) Referenz auf ein CLOB-Objekt in der Datenbank. Danach kann das CL_SQL_CLOB Objekt für nachfolgende Zugriffe auf den CLOB-Inhalt verwendet werden.

Die Konzept von LOB-Lokatoren und deren Verwendung ist derzeit noch nicht normiert und stark datenbankabhängig. Deshalb enthält die Klasse CL_SQL_CLOB auch keine Methoden, die für alle vom SAP Applikationsserver unterstützten Datenbanksysteme in einheitlicher Weise zu verwenden wäre. Auf LOB-Lokatoren basierende datenbankspezifische Zugriffsmethoden sind aus diesem Grund nur in abgeleiteten Klassen CL_SQL_CLOB_ zu finden, wobei als Kürzel für das betreffende Datenbanksystem steht:

ADA - SAPDB
DB2 - DB2/OS390
DB4 - DB2/AS400
DB6 - DB2/UDB für NT und UNIX
INF - Informix
MSS - MS SQL Server
ORA - Oracle

Die LOB Lokator-Funktionalität ist jedoch nicht für alle Datenbanken unterstützt.

Beziehungen

Beispiel

DATA:
stmt_ref TYPE REF TO cl_sql_statement,
res_ref TYPE REF TO cl_sql_result_set,
clob_ref TYPE REF TO cl_sql_clob_ora. "define an Oracle CLOB locator

CREATE OBJECT stmt_ref.
CREATE OBJECT clob_ref.
res_ref = stmt_ref->execute_query( `select clob_column from ...` ).
res_ref->set_param_blob( clob_ref ).
WHILE res_ref->next( ) > 0.
* call database dependent methods blob_ref->...( ) to do something
* with the CLOB
ENDWHILE.
res_ref->close( ).

Hinweise

Weiterführende Informationen






CPI1466 during Backup   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 3246 Date: 20240328 Time: 220010     sap01-206 ( 79 ms )