인터널 테이블 추가하는 방법:
- insert
- append
- collect
1. TABLE KEY를 이용한 한 라인 추가 (WITH KEY)
- SORTED TABLE 또는 HASHED TABLE일 것
- WITH UNIQUE KEY로 선언되어 있어야 함
- `INSERT line into table itab`
-> insert가 성공하면, 시스템 변수 sy-subrc에 0이 저장됨
2. 여러 라인을 한 번에 추가
INSERT lines OF itab1 FROM n1 To n2 INTO TABLE itab2.
- with non-unique key col1의 의미
: col1필드가 정렬 키는 되지만 중복된 값을 가질 수 있다는 의미
선언중복 허용 조건
선언 | 중복 허용 조건 |
WITH UNIQUE KEY col1 | col1만 유일하면 나머지 필드는 중복 OK |
WITH UNIQUE KEY col1 col2 | col1, col2 조합이 유일해야 |
LIKE STANDARD TABLE OF vs TYPE STANDARD TABLE OF
1. TYPE STANDARD TABLE OF
TYPES: ty_fruit_tab TYPE STANDARD TABLE OF ty_fruit.
DATA: gt_fruit TYPE ty_fruit_tab.
- TYPES:는 **“타입을 정의”**하는 키워드
- 여러 변수에 재사용 가능 (복잡한 구조도 정의 가능)
- 유지보수에 좋음!
- 📌 주로 모듈화, 재사용, 선언 분리할 때 사용
2. LIKE STANDARD TABLE OF
DATA: gt_copy LIKE STANDARD TABLE OF gt_fruit.
이미 선언된 변수나 구조체를 기준으로 데이터 선언할 때
- LIKE는 기존 변수(gt_fruit)의 구조를 참고해서 선언
- 즉, 이미 선언된 gt_fruit을 기반으로 테이블을 하나 더 만듦
- 📌 간편 복사, 임시 테이블 만들 때 사용
구분 | 목적 | 용도 예시 |
TYPE STANDARD TABLE OF | 타입 정의용 (TYPES) | 재사용 가능한 구조 만들기 |
LIKE STANDARD TABLE OF | 기존 변수 구조 참조용 | 기존 내부 테이블 구조 복제 |
TYPES: BEGIN OF ty_fruit,
name TYPE string,
price TYPE i,
END OF ty_fruit.
" ✅ 타입 정의
TYPES: ty_fruit_tab TYPE STANDARD TABLE OF ty_fruit.
DATA: gt_fruit TYPE ty_fruit_tab.
" ✅ 기존 테이블 기반 새 테이블 만들기
DATA: gt_copy LIKE STANDARD TABLE OF gt_fruit.
3. Index를 이용해 한 라인 추가
- index 구문을 이용하면 index 값 위치에 라인을 삽입할 수 있다.
- 이때는, Hashed TYPE의 인터널 테이블에는 사용이 불가하다.
- 성공 시, sy-subrc 변수는 0을, 그리고 sy-tablx변수는 index값을 반환함
INSERT line INTO itab [Index idx].
인덱스를 이용해 여러 라인도 추가할 수 있다.
INSERT lines OF itab1 INTO itab2 [Index idx].
4. 인터널 테이블 타입에 따른 INSERT
타입 | 효과 |
STANDARD TABLE | - 데이터는 인터널 테이블의 마지막 위치에 추가된다. - APPEND 구문과 같은 효과를 가진다. |
SORTED TABLE | - 데이터는 인터널 테이블의 순서에 따라 추가된다. - NON-UNIQUE KEY타입이라면, Duplicate Line은 같은 Key위에 추가됨 |
HASHED TABLE | 데이터는 Table Key의 Hash index순서에 따라 추가됨 |
- 각각의 테이블에 insert한 후 결과다.
'SAP' 카테고리의 다른 글
easy abap 28. collect (0) | 2025.05.13 |
---|---|
easy abap 27. append (0) | 2025.05.13 |
easy abab 25. 인터널 테이블 명령어 - move, clear, refresh, free, sort, describe (0) | 2025.05.13 |
easy abap 24. standard / sorted table / hashed table (0) | 2025.05.12 |
easy abap 23. Internal Table 정의, 생성 (0) | 2025.05.11 |