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 a LOB handle structure as a work area for working with
streaming and locators in ABAP 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 that is constructed for all columns not among the specified columns
exactly 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 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. If specified, the following must create a set of LOB handle components:
... lob_handle_type FOR lob_handle_columns ...
This set of LOB handle components must 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 multiple times, the more comprehensive option must be used.
Apart from the rules specified 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 columns 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
as
ALL ... COLUMNS
in whichBLOB
orCLOB
is specified. -
If specified, the columns
ALL BLOB|CLOB COLUMNS
cover all BLOBs or CLOBs. When specified, a single BLOB or CLOB cannot be specified in specified columnsCOLUMNS ...
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
Declares types for work areas with LOB handle components for a writer stream and a reader stream for the column PICTURE and a locator for all LOBs in the database table DEMO_BLOB_TABLE.
TYPES:
wa1 TYPE demo_blob_table WRITER FOR COLUMNS picture,
wa2 TYPE demo_blob_table READER FOR COLUMNS picture,
wa3 TYPE demo_blob_table LOCATOR FOR ALL COLUMNS.
Executable Example
Deriving LOB Handle Structures