쌓고 쌓다
LOOP문 내에서 Internal Table MODIFY TABLE과 MODIFY 차이 본문
반응형
MODIFY 구문을 잘 사용안해서 그런가...
한번 정리해서 기억해두려고 작성한다.
Internal Table을 도는 LOOP문 내에서
MODIFY TABLE과 MODIFY가 어떻게 다르게 동작하는지 보자.
예시 코드

GT_DATA의 키값은 CHAR형 필드가 ID밖에 없으므로
ID가 키값이 된다.
첫번째와 두번째 데이터의 키값이 겹치는 상황.
이때 두번째 데이터에 대해 MODIFY 구문이 발생했을때
MODIFY TABLE과 MODIFY는 어떻게 동작할까?
결과적으로는
MODIFY TABLE 구문은 Work Area에 들어있는 키값으로
Internal Table에서 일치하는 데이터를 찾아 수정을하고
MODIFY 구문은 루프 문에서의 SY-TABIX 값으로
해당 인덱스 데이터를 Work Area에 들어있는 값으로 바로 수정한다.

MODIFY TABLE일때 결과

두번째 ROW 데이터에서 MODIFY가 일어났지만
GT_DATA의 첫번째 ROW에서 FROM절에 명시한 구조체와 키값이 일치하므로
이 첫번째 데이터만을 MODIFY해버린다.
MODIFY 일때 결과

인덱스 기반으로 처리하므로 2번째 인덱스 데이터를 접근할때 MODIFY했으므로
2번째 데이터의 값을 MODIFY 한다.
+ MODIFY 구문을 이용해 조건을 가지고 특정 필드 값을 바꿀 수 도 있다.

반응형
'SAP > ABAP' 카테고리의 다른 글
| CALL FUNCTION할때 EXCEPTIONS와 SY-SUBRC 관계 (2) | 2026.05.02 |
|---|---|
| Lock Object 사용할때 _COLLECT 파라미터 주의사항 (0) | 2026.04.29 |
| [ABAP] RTTS (RunTime Type Service) (0) | 2026.03.15 |
| CREATE_DYNAMIC_TABLE과 LVC_T_SCOL (0) | 2026.03.12 |
| [ABAP] HTML로 누적 막대 그래프 그려 넣기 (0) | 2026.02.27 |