ABAP Keyword Documentation → ABAP - Reference → Declarations → Declaration Statements → Data Types and Data Objects → Declaring Data Types → TYPES
TYPES - LOB HANDLE
Other versions: 7.31 | 7.40 | 7.54
Syntax
TYPES dtype TYPE dbtab|view
lob_handle_type FOR lob_handle_columns
[
lob_handle_type FOR lob_handle_columns
...
].
Effect
Derives an LOB handle structure as a work area for working with
streaming and locators in Open SQL. dbtab
expects a
database table defined in ABAP Dictionary or a
database view defined for view
in ABAP Dictionary.
The columns lob_handle_columns
, when specified, are used to determine
LOBs from dbtab
.
The statement creates a deep structure which is constructed exactly the same for all columns not included
in the specified columns as it is for a regular
TYPE reference to dbtab
. For the LOBs included in the specified columns, a component with the same name is created as a
LOB handle component. The
static type of the LOB
handle components is a class or an interface which is determined by the specified type
lob_handle_type
, and is assigned to the respective specified column.
The combinations of the additions specified under
lob_handle_columns and lob_handle_type
are determined using the following rules:
- A structure for reads can only contain the specified types
READER
,LOCATOR
, andLOB HANDLE
.
- The definition of the LOB handle components must not contain contradictions, which means that columns must not be assigned to unsuitable types or a column cannot be assigned to multiple types.
-
The definition of LOB handle components must not contain redundancies. Each specified
... lob_handle_type FOR lob_handle_columns ...
must create a set of LOB handle components that do not overlap with another specified set of LOB handle components. -
The definition of the LOB handle components must be specified with as few components as possible. If
the same set of LOB handle components can be specified once rather than using multiple input, the more comprehensive option must be used.
Apart from the rules listed under lob_handle_columns
and lob_handle_type
, there are also the following general restrictions:
- At least one column must be specified.
- The types specified for the first three specified column for LOB handle components for reads and the first two columns for LOB handle components for writes cannot be the same.
-
In each case there can only be one column specified
ALL ... COLUMNS
, in whichBLOB
orCLOB
are specified. -
The specified columns
ALL BLOB|CLOB COLUMNS
include all BLOBs or CLOBs. If they are specified, an individual BLOB or CLOB cannot also be specified in a specified columnCOLUMNS ...
for the same static type. -
The specified columns ALL
OTHER COLUMNS include all columns that are not specified individually.
ALL OTHER BLOB COLUMNS
orALL OTHER CLOB COLUMNS
cannot be specified at the same time. -
The
specified columns
ALL COLUMNS include all LOBs and can therefore only be specified on their own.
Notes
-
LOB handle structures can also be defined using the corresponding typing of components between
BEGIN OF
andEND OF
. - LOB handle structures can also be derived in ABAP Dictionary. The display of database tables or views containing LOBs includes a function for this.
-
If
dbtab
does not contain any LOBs that match the specified columns, no LOB handle components are created and the statement creates a normal work area. -
If LOBs are added to
dbtab
that match the specified columnsALL [OTHER] ...
, LOB handle components are also created for these.
Example