SAP SELECT INTO LOB HANDLES Get Example source ABAP code based on a different SAP table
SAP Help
VERSION 5 IN
SELECT>, LOB Handles In a standalone
SELECT>> statement or a WITH>> statement, but not in a FETCH>> statement, LOB handles> can be created as reader streams> and as locators> in the INTO >> clause. ITOC Prerequisites An LOB> from the result set can be assigned to an LOB handle component> of a work area, or to an individual reference variable for an LOB handle. The static type of all LOB handle components must contain the interface> IF_ABAP_DB_LOB_HANDLE>> and match the corresponding data source> component, that is, they must be less specific or the same as one of the following system classes for streaming> or locators >: CL_ABAP_DB_C_READER>> or CL_ABAP_DB_C_LOCATOR>> in the case of CLOBs>. CL_ABAP_DB_X_READER>> or CL_ABAP_DB_X_LOCATOR>> in the case of BLOBs>. The stream type> or locator type> must match the data type of the LOBs. Rules If an LOB> from the result set of a selection is assigned to an LOB handle component of a work area or to an individual reference variable for an LOB handle>, either a reader stream> is created as an instance of one of the classes CL_ABAP_DB_C_READER>>, CL_ABAP_DB_X_READER>> or, a locator> is created as an instance of one of the classes CL_ABAP_DB_C_LOCATOR>> or CL_ABAP_DB_X_LOCATOR>> and after the execution of the SELECT> statement the reference variable points to the object. The class used is determined using the data type of the column of the result sets and the static type of the target variable, or using the addition CREATING>> if required. The LOB to be read can be evaluated or forwarded using LOB handle methods. An LOB handle created in this way, that is, a reader stream or a locator, exists until it: is closed explicitly using its CLOSE> method from the IF_ABAP_CLOSE_RESOURCE> interface, or is closed implicitly at the end of the current database LUW>. Reader streams, but not locators, are also closed implicitly by the statement ENDSELECT>>. BEGIN_SECTION SAP_INTERNAL_HINT No support for FETCH> and CLOSE CURSOR> in current release. END_SECTION SAP_INTERNAL_HINT Accessing a closed LOB handle produces a runtime error. Special properties of open reader streams and locators: As long as a reader stream for an AB-SQL statement is still open, the associated database is not closed. This state can only occur with SELECT SINGLE>>, since there is no implicit termination of the reader stream using ENDSELECT>. In this case, a reference to an object of the class CL_ABAP_SQL_SELECT_STATEMENT>>, a subclass of CL_ABAP_SQL_STATEMENT_HANDLE>>, can be obtained from the interface IF_ABAP_DB_READER>> using the method GET_STATEMENT_HANDLE> before closing the reader stream. The methods of the abstract superclass implemented there can be used to check the state of the AB-SQL statement, and all streams that are still open can be closed. It is guaranteed that, once created, a locator always works with the same LOB data. If the associated LOB column is modified while a locator is open, an internal copy of the LOB data for the locator is created on the database first.