Programming/ABAP

DELETE vs CLEAR vs REFRESH vs FREE

_syd 2023. 8. 8. 23:22

Internal Table 에서 데이터를 삭제하는 방법들인 Delete, Clear, Refresh, Free 는 각각 차이가 존재한다.

 

실행 전
실행 후

 

위 사진에서,

FREE 는 할당된 메모리를 모두 삭제하고, DELETE 는 그대로 유지하는 것을 확인 할 수 있다.

 

CLEAR 와 REFRESH 는 할당된 메모리를 해제하고 internal table 을 초기 크기로 설정한다는 공통점이 있다.

하지만, REFRESH 는 header line 을 삭제할 수 없고, CLEAR는 header line과 work area 모두 삭제할 수 있다는 차이점이 존재한다.

 

요약

DELETE 메모리 상관 없이 입력된 데이터만 삭제
REFRESH itab[]에 해당하는 body만 삭제(structure 삭제 불가)
CLEAR itab[] 라고 명시할 경우 body 만 삭제, itab 인 경우 body, header 모두 삭제
FREE header, body, 메모리 모두 삭제

 

 

참고

 

DELETE vs CLEAR vs REFRESH vs FREE

DELETE CLEAR REFRESH FREE These are different ways of deleting all data from an internal table. They look the same. But they aren’t.

abapinho.com

 

 

 

728x90