ABAP Keyword Documentation → ABAP - Reference → Processing Internal Data → Internal Tables → Processing Statements for Internal Tables
FIND IN TABLE itab
Other versions: 7.31 | 7.40 | 7.54
Syntax
FIND [{FIRST OCCURRENCE}|{ALL OCCURRENCES} OF] pattern
IN TABLE itab [table_range]
[IN {CHARACTER|BYTE} MODE]
[find_options].
Effect
The internal table itab
is searched row-by-row for the character strings
or byte strings specified in pattern
. itab
is a
functional operand position.
itab
must be a standard table with no
secondary table keys.
The rows in the table must be character-like or byte-like, depending on the CHARACTER
or BYTE MODE
addition. Character strings or byte strings that cover multiple table rows are not found.
The table_range
addition
can be used to restrict the search range in the table. When replacing, the other additions generally
have the same significance as the FIND
statement for elementary character or byte strings, whereby a further addition MATCH LINE
also returns the row number of any location found.
The search is terminated if the search pattern was found for the first time, or if all search patterns
were found in the entire search area, or if the end of the search area was reached. The search result is communicated by setting sy-subrc
.
In string processing with row types of fixed length, trailing blanks are respected.
Note
Searching using FIND IN TABLE
produces better performance than running a
LOOP
and using FIND
to search the individual rows.
System Fields
sy-subrc | Meaning |
---|---|
0 | The search pattern was found at least once in the search range. |
4 | The search pattern was not found in the search range. |
The values of sy-tabix
and sy-fdpos
are not changed.
Example
Searches for all occurrences of Donald's nephews in an internal table and save the results in the table results
.
DATA: itab TYPE TABLE OF string,
results TYPE match_result_tab.
...
FIND ALL OCCURRENCES OF REGEX '\b(Huey|Dewey|Louie)\b'
IN TABLE itab
RESPECTING CASE
RESULTS results.
Exceptions
Catchable Exceptions
CX_SY_RANGE_OUT_OF_BOUNDS
-
Cause: Illegal offset or length specified in the addition
SECTION OF
.
Runtime Error:REFI_WRONG_SECTION
CX_SY_TAB_RANGE_OUT_OF_BOUNDS
-
Cause: Invalid offset or length specified in the addition
FROM ... OFFSET ... TO OFFSET
.
Runtime Error:INVALID_TABLE_RANGE
CX_SY_INVALID_REGEX
-
Cause: Illegal expression after the addition
REGEX
.
Runtime Error:INVALID_REGEX