[ABAP] READ TABLE 구문

규벨롭·2024년 3월 6일
0

ABAP

목록 보기
2/3
post-thumbnail

개요


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'.
  • INDEX
    찾아오고자 하는 행의 인덱스를 사용해 검색
READ TABLE GT_TAB INTO GS_TAB INDEX SY-INDEX.
  • BINARY SEARCH
    이진탐색을 통해 검색 속도를 높여준다.
    ❗ 사용전 Internal Table을 필드조건 순서대로 정렬해야 함. ❗
SORT GT_TAB BY K1.

READ TABLE GT_TAB INTO GS_TAB WITH KEY K1 = 'AA' BINARY SEARCH.
  • COMPARING
    필드 비교를 위해 사용하는 절.
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.

  • TRANSPORTING
    해당 절 뒤에 기입한 필드 값만 WA에 할당.
READ TABLE GT_TAB INTO GS_TAB WITH KEY K1 = 'AA' TRANSPORTING COL1 COL2 [ALL FIELDS].

K1이 AA인 행을 찾아 COL1 과 COL2 값만 GS_TAB에 해당 필드에 할당.

profile
SAP / ABAP

0개의 댓글