Deleting Lines from an ABAP Internal Table:
DELETE
is the statement to delete one or more lines from an ABAP
Internal Table. Use the INDEX addition to delete a single line. If we use
the INDEX addition and the operation is successful, the line with the corresponding index in the internal table will be
deleted and the indexes of the subsequent lines will be reduced by one.
Syntax:
DELETE
<internal table> [INDEX <index>].
We can also use the above DELETE statement without INDEX addition inside LOOP. Inside LOOP if we do not specify the INDEX, then the current loop line will be deleted.
We can use the WHERE clause to delete single or multiple lines. All the lines that meet the logical condition will be deleted
Syntax:
DELETE
<internal table> [FROM <n1>] [TO <n2>] [WHERE
<condition>].
With WHERE clause we can also specify the lines between certain indices that we want to delete by specifying indexes in FROM and TO additions.
Example:
*--------------------------------------------------------------*
*Data Types
*--------------------------------------------------------------*
TYPES: BEGIN OF
ty_student,
id(5)
TYPE n,
name(10)
TYPE c,
place(10) TYPE c,
age
TYPE i,
END OF ty_student.
*--------------------------------------------------------------*
*Data Declaration
*--------------------------------------------------------------*
DATA: gwa_student TYPE
ty_student.
DATA: it TYPE TABLE OF ty_student.
gwa_student-id = 1.
gwa_student-name = 'JOHN'.
gwa_student-place = 'London'.
gwa_student-age = 20.
INSERT gwa_student INTO
TABLE it.
gwa_student-id = 2.
gwa_student-name = 'JIM'.
gwa_student-place = 'New York'.
gwa_student-age = 21.
INSERT gwa_student INTO
TABLE it.
gwa_student-id = 3.
gwa_student-name = 'JACK'.
gwa_student-place = 'Bangalore'.
gwa_student-age = 20.
INSERT gwa_student INTO
TABLE it.
gwa_student-id = 4.
gwa_student-name = 'ROB'.
gwa_student-place = 'Bangalore'.
gwa_student-age = 22.
INSERT gwa_student INTO
TABLE it.
WRITE:/ 'Values in IT
before DELETE' COLOR 4.
WRITE:/ 'ID' COLOR 5,7
'Name' COLOR 5, 18 'Place' COLOR 5,
37 'Age' COLOR 5.
LOOP AT it INTO
gwa_student.
WRITE:/ gwa_student-id, gwa_student-name,
gwa_student-place,
gwa_student-age.
ENDLOOP.
SKIP.
WRITE:/ 'Values in IT
after DELETE' COLOR 4.
*Delete second line
from IT
DELETE it INDEX 2.
WRITE:/ 'ID' COLOR 5,7
'Name' COLOR 5, 18 'Place' COLOR 5,
37 'Age' COLOR 5.
LOOP AT it INTO
gwa_student.
WRITE:/ gwa_student-id, gwa_student-name,
gwa_student-place,
gwa_student-age.
ENDLOOP.
SKIP.
WRITE:/ 'Values in IT
after DELETE using WHERE Clause' COLOR 4.
*Delete entries from IT
where place is Bangalore
DELETE it WHERE place =
'Bangalore'.
WRITE:/ 'ID' COLOR 5,7
'Name' COLOR 5, 18 'Place' COLOR 5,
37 'Age' COLOR 5.
LOOP AT it INTO
gwa_student.
WRITE:/ gwa_student-id, gwa_student-name,
gwa_student-place,
gwa_student-age.
ENDLOOP.
Output: