쌓고 쌓다

LOOP문 내에서 Internal Table MODIFY TABLE과 MODIFY 차이 본문

SAP/ABAP

LOOP문 내에서 Internal Table MODIFY TABLE과 MODIFY 차이

승민아 2026. 4. 15. 23:40
반응형

 

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 구문을 이용해 조건을 가지고 특정 필드 값을 바꿀 수 도 있다.

 

반응형