sapdev logo background
sapdev logo sapdev logo
Comments

ABAP DELETE ITAB LINE Statement syntax, information and example SAP source code



Return to Statement index



DELETE itab - itab_line

Short Reference

ABAP Syntax ABAP_KEY ... {TABLE itab table_key }
| {itab INDEX idx [USING KEY keyname ]}
| {itab [USING KEY loop_key]}.

ABAP_ALTERNATIVES:
1 ... TABLE itab table_key
2 ... itab INDEX idx [USING KEY keyname]
3 ... itab [USING KEY loop_key]

What does it do? These alternatives specify which single row of the internal table itab is to be deleted.

ABAP_ALTERNATIVE_1 ... TABLE itab table_key

What does it do? If you use the variant with the TABLE addition, you specify the row by using the primary table key table_key .

ABAP_ALTERNATIVE_2 ... itab INDEX idx [USING KEY keyname]

ABAP_ADDITION:
... USING KEY keyname

What does it do? If the INDEX addition is used, the DELETE statement deletes the row of the row number specified in idx with respect to a table index. idx is a numerical expression position
of the operand type i . If idx contains a value of 0 or less, an exception is raised that cannot be handled.
If the addition USING KEY is not used, the addition INDEX
can only be used with index tables and determines the row to be deleted from the primary table index .

Example ABAP Coding Deletes the table row that has the same value as
carrid in the key field p_carrid , by specifying a primary table index.
PARAMETERS p_carrid TYPE scarr-carrid.

DATA scarr_tab TYPE SORTED TABLE OF scarr
WITH UNIQUE KEY carrid.

SELECT *
FROM scarr
INTO TABLE scarr_tab.

READ TABLE scarr_tab WITH TABLE KEY carrid = p_carrid
TRANSPORTING NO FIELDS.

IF sy-subrc = 0.
DELETE scarr_tab INDEX sy-tabix.
ENDIF.

ABAP_ADDITION ... USING KEY keyname

What does it do? If the addition USING KEY is used, a table key can be declared in keyname to declare the table index to be used explicitly.
If the table has a sorted secondary key , this can be specified in keyname . The row to be deleted is then determined from its secondary table index . You cannot declare a secondary hashed key .
If the primary table key is specified under the name primary_key , the table must be an index table, and the behavior is the same as when USING KEY is not specified.
Latest notes: If a sorted secondary key exists, the INDEX addition can be used for all table types, if USING KEY is used.

ABAP_ALTERNATIVE_3 ... itab

ABAP_ADDITION:
... USING KEY loop_key

What does it do? This variant is only possible within a LOOP across the same internal table. The current table row of the LOOP is then deleted implicitly. If the addition USING KEY is specified in LOOP , then the variant USING KEY loop_key must be specified for this variant.
If the current row has already been deleted in the same loop, however, the behaviour is undefined.
This variant is not allowed outside of a LOOP and raises a warning in the syntax check, if the check cannot detect (statically) its presence in a loop.
Latest notes: We do not recommend that you use this alternative. Instead, use the INDEX addition to specify the row number explicitly.

Example ABAP Coding The following loop deletes all lines in an internal table, since the short form of the DELETE
statement always deletes the current first line.
DATA itab TYPE TABLE OF i.
DATA wa LIKE LINE OF itab.

LOOP AT itab INTO wa TO 6.
DELETE itab.
ENDLOOP.

ABAP_ADDITION ... USING KEY loop_key

What does it do? This addition is required if the table key used by the LOOP is specified explicitly in the statement LOOP . It states explicitly that the current table row is deleted by the LOOP
. No other key can be specified apart from the predefined name loop_key . If no explicit table key is specified for LOOP , then the addition USING KEY loop_key
is optional.
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved




DELETE_ITAB_KEY
DELETE_ITAB_LINES




comments powered by Disqus