SAP/ABAP 기초

(ABAP) REFRESH, CLEAR, FREE에 대하여

haramang 2021. 6. 14. 14:54

* INTERNAL TABLE의 데이터를 지울 때는 REFRESH <ITAB>을 사용하고 WORK AREA를 초기화 시킬 때는 CLEAR를 사용하도록 하자.

 

 

- REFRESH <ITAB>

  > INTERNAL TABLE에 있는 데이터를 삭제한다.

  > INTERNAL TABLE을 만들기 위해 사용 된 메모리를 제외한 나머지 메모리를 회수한다. (새로운 ROW를 추가할 때 성
     능 향상을 위해)

 

- CLEAR <ITAB>

  > 주로 WORK AREA를 지울 때 사용하도록 하자.

  > INTERNAL TABLE이 HEADER LINE이 있을 경우, HEADER LINE의 데이터만 삭제한다.

  > INTERNAL TABLE이 HEADER LINE을 없을 경우, 테이블에 있는 데이터를 모두 삭제한다.

  > INTERNAL TABLE을 만들기 위해 사용 된 메모리를 제외한 나머지 메모리를 회수한다. (새로운 ROW를 추가할 때 성
     능 향상을 위해)

 

- CLEAR <ITAB>[]

  > 주로 WORK AREA를 지울 때 사용하도록 하자.

  > INTERNAL TABLE이 HEADER LINE이 있을 경우, 테이블에 있는 데이터는 삭제하지만 HEADER LINE의 데이터는
     그대로 유지한다.

  > INTERNAL TABLE을 만들기 위해 사용 된 메모리를 제외한 나머지 메모리를 회수한다. (새로운 ROW를 추가할 때 성
     능 향상을 위해)

 

- FREE

  > INTERNAL TABLE에 HEADER LINE이 있다면, 테이블 BODY 내용만 삭제하고 사용 된 메모리를 회수한다.

  > INTERNAL TABLE에 HEADER LINE이 없다면, 테이블 전체를 삭제하고 사용 된 메모리를 회수한다.

  > INTERNAL TABLE이 더 이상 사용되지 않을 때만 사용하도록 하자.