1. 한 라인 추가

- insert 구문은 Key와 Index를 이용해 인터널 테이블에 데이터를 추가할 수 있지만, append구문은 index만 이용할 수 있다.

- 즉, hashed type의 인터널 테이블에서는 사용할 수 없다.

APPEND Line TO itab.

- append를 한 후에는 시스템 변수 SY-TABIX에 인터널 테이블에 추가된 라인의 Index번호를 저장함

 

2. 여러 라인 추가

- insert 구문과 동일하게 인터널 테이블을 한 번에 다른 인터널 테이블로 추가할 수 있다.

APPEND lines OF itab1 TO itab2.

 

- itab1의 인덱스 n1~n2값을 Itab2에 추가할 수 있다.

APPEND Lines OF itab1 From n1 To n2 TO itab2.

✨ hashed table에서는 append를 사용할 수 없다!

 

- hash table에서는 index접근이 불가하기 때문이다. 항상 키 기반으로만 접근해야함!

 

- sorted도 B - A - A - C 순으로 append하니 에러가 떴다.

- 고쳐주니 제대로 잘 나온다-!

 

3. 인터널 테이블 타입에 따른 APPEND 효과

 

테이블 효과
STANDARD TABLE - 추가되는 데이터는 인터널 테이블의 마지막 위치에 추가됨
- Sorted by옵션을 이용해 Key값 기준으로 descending 정렬을 하며 추가할 수 있음
SORTED TABLE - 데이터가 정렬된 상태로 인터널 테이블에 추가되도록 로직을 구성해야함
- 그렇지 않으면 DUMP ERROR가 생김
HASHED TABLE APPEND구문 사용할 수 없음

 

4. APPEND INITAL LINE

- 인터널 테이블을 빈 공간에서 미리 생성한 후, 라인을 추가할 수 있다.

APPEND INITIAL LINE TO itab
~ 
APPEND wa TO itab.

 

- sorted by구문을 사용하면 칼럼 f를 기준으로 DESCENDING 정렬을 수행하여 추가한다.

- 이때, Standard type의 인터널 테이블만 효력이 있으며, INITAL SIZE로 크기를 지정해야 함

APPEND wa TO itab SORTED BY f.

- 이렇게 하면 'A' 2 가 삭제된다.

- C -> B -> A 로 descending하고, initial size가 2기 때문에 A가 지워진다. 

+ Recent posts