READ TABLE 구문 : Internal Table 내 원하는 ROW를 읽어올 때 사용하는 구문
DATA: GS_TAB TYPE [STRUCTURE],
GT_TAB LIKE TABLE OF GS_TAB.
READ TABLE GT_TAB INTO GS_TAB WITH KEY K1 = 'AA'.
IF SY-SUBRC = 0.
ENDIF.
READ TABLE GT_TAB INTO GS_TAB INDEX SY-INDEX.
- 검색결과가 있을 때
SY-SUBRC = 0 / Work Area에 ROW 반환 / SY-TABIX에 인덱스 반환- 검색결과가 없을 때
SY-SUBRC = 4
공통
검색 후 꼭 IF문을 사용해 SY-SUBRC = 0임을 체크.
WITH KEY
필드 조건을 사용해 행을 검색 하기 위해 사용.
READ TABLE GT_TAB INTO GS_TAB WITH KEY K1 = 'AA'.
READ TABLE GT_TAB INTO GS_TAB INDEX SY-INDEX.
SORT GT_TAB BY K1.
READ TABLE GT_TAB INTO GS_TAB WITH KEY K1 = 'AA' BINARY SEARCH.
READ TABLE GT_TAB FROM GS_TAB COMPARING ALL FIELDS.
READ TABLE GT_TAB INTO GS_TAB FROM GS_TAB COMPARING COL1.
필드 값을 비교해서 검색해 오는데 값이 동일하면 SUBRC = 0 다른 값이 있으면 SUBRC = 2 검색결과가 없으면 SUBRC = 4.
READ TABLE GT_TAB INTO GS_TAB WITH KEY K1 = 'AA' TRANSPORTING COL1 COL2 [ALL FIELDS].
K1이 AA인 행을 찾아 COL1 과 COL2 값만 GS_TAB에 해당 필드에 할당.