CS Student’s SAP&Tech Journey✨
[SAP] 인터널 테이블(Internal Table) (2) 테이블에 데이터 삽입하기 본문
SAP ABAP에서 데이터를 다룰 때 인터널 테이블(Internal Table, IT)은 필수적인 개념입니다.
인터널 테이블은 프로그램 실행 중 메모리에 저장되는 임시 데이터 테이블로, 대량의 데이터를 효과적으로 저장하고 조작하는 데 활용됩니다.
이번 글에서는 다양한 데이터 삽입 방식을 상세히 알아보겠습니다.
인터널 테이블 생성 및 선언하는 방법과 관련된 포스팅 보러가기⬇️
ABAP 프로그래밍: 인터널 테이블(Internal Table) (1) 테이블 선언, 생성하기
SAP ABAP에서 데이터를 다룰 때 인터널 테이블(Internal Table, IT)은 필수적인 개념입니다.인터널 테이블은 프로그램 실행 중 메모리에 저장되며, 데이터베이스와 달리 임시 데이터 저장소 역할을 합
informatik.tistory.com
인터널 테이블에 데이터 삽입하기
인터널 테이블에 데이터를 삽입하는 방법은 여러 가지가 있습니다.
각 방법을 비교해보고, 실제로 사용할 때 어떤 방식이 적절한지 알아보겠습니다.
- Work Area(WA)를 이용한 개별 데이터 삽입
- APPEND를 사용한 삽입 (Standard Table 전용)
- INSERT를 사용한 삽입 (Sorted & Hashed Table 포함)
- Work Area(WA)를 활용한 다중 데이터 삽입 (LOOP + APPEND 활용)
- DO, LOOP, CLEAR를 이용한 반복 삽입
- Work Area(WA) 없이 직접 데이터 추가하기
- APPEND VALUE #( ... )를 활용한 간편한 삽입
1. Work Area(WA)를 이용한 개별 데이터 삽입
✅ APPEND로 데이터 삽입 (Standard Table 전용)
DATA gw_flight TYPE ts_flightinfo.
gw_flight-carrid = 'AA'.
gw_flight-connid = '0017'.
gw_flight-fldate = sy-datum.
gw_flight-percentage = '98.00'.
APPEND gw_flight TO gt_flight. " Standard Table에서 맨 뒤에 추가
📌 Standard Table에서만 사용 가능, APPEND 시 자동으로 마지막 위치에 추가됨
✅ INSERT로 데이터 삽입 (Standard & Sorted & Hashed Table 모두 가능)
INSERT gw_flight INTO TABLE gt_flight.
📌 Sorted Table과 Hashed Table에서는 반드시 INSERT 사용
🎯 예시
DATA gt_carrier TYPE BC400_T_CARRIERS. "IT 선언
DATA gw_carrier TYPE BC400_S_CARRIER. "WA 선언
* 첫번째 행 추가
gw_carrier-carrid ='KA'.
gw_carrier-carrname = 'Korean Air'.
gw_carrier-currcode = 'KRW'.
gw_carrier-url = 'http://www.ka.com'.
APPEND gw_carrier TO gt_carrier.
* 두번째 행 추가
CLEAR gw_carrier.
gw_carrier-carrid = 'UA'.
gw_carrier-carrname = 'United Air'.
gw_carrier-currcode = 'USD'.
INSERT gw_carrier INTO TABLE gt_carrier.
📌 설명
- 한 개의 Work Area(WA)를 사용하여 개별적으로 데이터 삽입
- APPEND → Standard Table의 맨 끝에 추가
- INSERT → Key에 따라 적절한 위치에 삽입
- WA를 활용하여 데이터 삽입할 때, CLEAR 해준 후 사용
- 반복문 없이 개별적으로 데이터를 할당 & 추가
📌 출력
2. Work Area(WA)를 활용한 LOOP + APPEND를 활용한 다중 데이터 삽입
DATA gt_carrier TYPE BC400_T_CARRIERS.
DATA gw_carrier TYPE BC400_S_CARRIER.
DO 10 TIMES.
CLEAR gw_carrier. " Work Area 초기화
gw_carrier-carrid = 'KA'.
gw_carrier-carrname = 'Airline' && sy-index. " 동적으로 데이터 변경
gw_carrier-currcode = 'KRW'.
gw_carrier-url = 'http://www.ka.com'.
APPEND gw_carrier TO gt_carrier. " 테이블에 추가
ENDDO.
📌 설명
- Work Area(WA)를 먼저 선언 (DATA gw_flight TYPE ts_flightinfo.)
- CLEAR gw_flight. → 매 반복마다 Work Area 초기화
- 반복문(DO 10 TIMES.)을 이용해 10개의 데이터 삽입
- APPEND gw_flight TO gt_flight. → Work Area의 데이터를 인터널 테이블로 추가
📌 출력
3. Work Area(WA) 없이 직접 데이터 추가하기
✅ ABAP 7.4 이상에서 사용 가능, 한 줄로 간편하게 데이터 삽입 가능
APPEND VALUE #( carrid = 'AA' connid = '0017' fldate = sy-datum percentage = '98.00' ) TO gt_flight.
'SAP > 인터널 테이블 Internal Table' 카테고리의 다른 글
[SAP] 인터널 테이블(Internal Table) (4) 테이블에서 데이터 수정, 삭제, 정렬하기 (0) | 2025.02.07 |
---|---|
[SAP] 인터널 테이블(Internal Table) (3) 테이블에서 데이터 읽기 (0) | 2025.02.07 |
[SAP] 인터널 테이블(Internal Table) (1) 테이블 선언, 생성하기 (0) | 2025.02.07 |