Ansicht
Dokumentation
CL_SQL_CLOB -
RFUMSV00 - Advance Return for Tax on Sales/Purchases Addresses (Business Address Services)Diese Dokumentation steht unter dem Copyright der SAP AG.
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_
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 )