SAP® Documentation

Single view

ABAPDELETE_ITAB_KEY - DELETE ITAB KEY

TXBHW - Original Tax Base Amount in Local Currency   Vendor Master (General Section)  
This documentation is copyright by SAP AG.
SAP E-Book

DELETE itab - table_key

Short Reference



Syntax

... TABLE itab ${ FROM wa $[USING KEY keyname$] $}
             $| ${ WITH TABLE KEY $[keyname COMPONENTS$]
                                ${comp_name1$|(name1)$} = operand1
                                ${comp_name2$|(name2)$} = operand2
                                 ...                           $} ...


Alternatives:

1. ... TABLE itab FROM wa $[USING KEY keyname$]

2. ... TABLE itab WITH TABLE KEY $[keyname COMPONENTS$] ...

Effect

Enter table key as a search key. The values of the search key can be declared either implicitly in a work area wa behind FROM or by listing the components of the table key explicitly behind TABLE KEY.

When the primary table key is used, the table categories are accessed as follows:

When the secondary table key is used, a binary scan is used in the sorted key case and a hash algorithm is used in the hash key case.

Note

When deleting a row from a standard table using a secondary key, the entire runtime depends linearly on the number of table rows. Although the rows to be deleted are found quickly, when updating the primary index a linear search for the entry to be deleted must be carried out.

Alternative 1

... TABLE itab FROM wa $[USING KEY keyname$]


Effect

For wa, a work area compatible to the row type of the internal table must be specified. This concerns functional operand positions. The first row of the internal table found, whose values in the columns of the table key used match those of the corresponding components of wa, is processed. If the key fields in wa are empty, no entries are processed.

If the USING KEY addition is not specified, the primary table key is used. If the USING KEY addition is specified, the table key specified in keyname is used.

If the primary table key is used to access a standard table and the key is empty, the first row of the internal table is deleted. If this is known statically, the syntax check produces a warning.

Notes

  • When using the primary table key, note that this key can be the standard key, which can also have unexpected consequences:
  • For structured row types, the standard key covers all character-like and byte-like components.

  • The standard key of a standard table can be empty.

  • Outside of classes, an obsolete short form is also possible where FROM wa can be omitted if the internal table has a header lineitab with the same name. The statement then uses the header line as the work area implicitly. Furthermore, USING KEY cannot be specified without FROM wa.


Example

Uses a work area constructed using the value operator VALUE to delete the table row that has the same value as the definable field carrid in the key field carrid of the primary key.

DATA carrid TYPE scarr-carrid.
cl_demo_input=>request( CHANGING field = carrid ).

DATA scarr_tab TYPE SORTED TABLE OF scarr
               WITH UNIQUE KEY carrid.
SELECT *
       FROM scarr
       INTO TABLE @scarr_tab.

DELETE TABLE scarr_tab FROM VALUE #( carrid = to_upper( carrid ) ).

Example

This example demonstrates an inconvenient way of deleting all flight connections between two specified cities using a secondary table key. In these cases, it is usually best to use a WHERE condition.

DATA spfli_tab TYPE SORTED TABLE OF spfli
               WITH UNIQUE KEY carrid connid
               WITH NON-UNIQUE SORTED KEY skey COMPONENTS cityfrom
                                                          cityto.
SELECT *
       FROM spfli
       INTO TABLE @spfli_tab.

DATA subrc TYPE sy-subrc.
WHILE subrc = 0.
  DELETE TABLE spfli_tab FROM VALUE #( cityfrom = 'FRANKFURT'
                                       cityto   = 'NEW YORK' )
                         USING KEY skey.
  subrc = sy-subrc.
ENDWHILE.

Alternative 2

... TABLE itab WITH TABLE KEY $[keyname COMPONENTS$] ...


Effect

Every component of the table key used must be executed, either directly as comp_name1 comp_name2 ..., or as a bracketed character-type data object name1 name2 ..., which contains the name of the component during the execution of the statement. comp_name1 comp_name2 ... are functional operand positions. name is not case-sensitive. If name only contains blank spaces, this component specification is ignored in the execution of the statement. A data object dobj1 dobj2 ..., that is compatible with the data type of the component or that can be converted to it, must be assigned to every component. The first row of the internal table found, whose values in the column of the table key used correspond with the values in the data object dobj1 dobj2 ... assigned, is processed. If it is necessary, the content of dobj1 dobj2 ... is converted to the data type of the component before the comparison.

If the addition COMPONENTS is not specified, the primary table key is used. If the addition COMPONENTS is specified, the table key specified in keyname is used.

Notes

  • The pseudo componenttable_line can be specified as a component for tables with an unstructured row type, if their whole table entry is defined as a table key.

  • To avoid unexpected results after a conversion, dobj1 dobj2 ... must be compatible with the data type of the component.

No Customizing include may be specified as a component if it is empty.

Example

Specifies the primary table key to delete the table row that has the same value as the definable field carrid in the key field carrid.

DATA carrid TYPE scarr-carrid.
cl_demo_input=>request( CHANGING field = carrid ).

DATA scarr_tab TYPE SORTED TABLE OF scarr
               WITH UNIQUE KEY carrid.
SELECT *
       FROM scarr
       INTO TABLE @scarr_tab.

DELETE TABLE scarr_tab WITH TABLE KEY carrid = carrid.

Example

Uses a secondary table key to delete all flight connections between two specified cities. In these cases, it is usually best to use a WHERE condition.

DATA spfli_tab TYPE SORTED TABLE OF spfli
     WITH UNIQUE KEY carrid connid
     WITH NON-UNIQUE SORTED KEY skey COMPONENTS cityfrom cityto.
SELECT *
       FROM spfli
       INTO TABLE @spfli_tab.

DATA subrc TYPE sy-subrc.
WHILE subrc = 0.
  DELETE TABLE spfli_tab WITH TABLE KEY skey
                         COMPONENTS cityfrom = 'FRANKFURT'
                                    cityto   = 'NEW YORK'.
  subrc = sy-subrc.
ENDWHILE.






CPI1466 during Backup   General Data in Customer Master  
This documentation is copyright by SAP AG.

Length: 14129 Date: 20191206 Time: 170714     sap01-206 ( 35 ms )

Our Service

Looking for Support? Questions?

The

Consolut

Callback-Service

Leave us your contact details and we will call you back. Panels marked with * are mandatory.