1. INSERT 구문

INSERT INTO <target> <lines>.
<f2> [ASCENDING | DESCENDING] ...

- 테이블에 하나 또는 여러 개의 데이터를 삽입하면, <target>은 테이블 이름으로, 동적으로 선언할 수 있다.

 

1) single line

INSERT INTO <target> VALUES <wa>.
INSERT <target> FROM <wa>.
INSERT <dbtab>.

 

첫번째 data의 gs_scarr을 출력한 것은 메모리에 넣은 변수이고, 두번째 data gs_scarr은 db에 있는 scarr의 내용을 select로 확인할 수 있다.

 

2) several lines

- 항공사 운항일정을 저장하는 spfli테이블에 데이터를 추가하고 출력해보았다. 

잘나옴!

하지만 위 출력결과는 DB로 부터 읽어온 결과가 아닌 메모리상 내부테이블을 읽어온것

DB에 있는 내용을 출력하고 싶으면 아래 코드로 컴파일하면 된다.

 

SELECT * INTO TABLE gt_spfli FROM spfli WHERE carrid = 'KO'.
LOOP AT gt_spfli INTO gs_spfli.
  WRITE: / gs_spfli-carrid, gs_spfli-connid, gs_spfli-cityfrom, gs_spfli-cityto.
ENDLOOP.

 

 

INSERT spfli FROM TABLE gt_spfli ACCEPTING DUPLICATE KEYS.

- INSERT는 기본적으로 중복 키가 있으면 RUN TIME ERROR가 발생함 

- 위와 같이 INSERT를 쓰면 중복 키인 행은 건너뛰고, 정상적인 행은 삽입함

 

전체적인 INSERT 구문 종류 정리 

 

1.  INSERT INTO … VALUES

- 한 건(insert one row) 삽입할 때 사용

DATA: gs_scarr TYPE scarr.

gs_scarr-carrid = 'KO'.
gs_scarr-carrname = 'Air Korea'.
gs_scarr-url = 'https://www.airkorea.co.kr/'.

INSERT INTO scarr VALUES gs_scarr.

- VALUES 뒤에 구조체를 넘겨서 한 줄만 삽입

 

 

2.  INSERT … FROM TABLE

- 내부 테이블 전체(insert multiple rows) 삽입할 때 사용

DATA: gt_spfli TYPE TABLE OF spfli.

" gt_spfli에 데이터 채우기...

INSERT spfli FROM TABLE gt_spfli ACCEPTING DUPLICATE KEYS.

 

요약 

구문 용도 특징
INSERT INTO tab VALUES wa 단일 행 삽입 SQL과 유사
INSERT tab FROM TABLE itab 여러 행 삽입 ABAP 전용 구문
INSERT ... ACCEPTING DUPLICATE KEYS 중복 무시하고 삽입 ABAP 고유 기능

 

'SAP' 카테고리의 다른 글

easy abap 13. Delete  (0) 2025.05.09
easy abap 12. Update  (0) 2025.05.09
easy abap 10. select - join & 그 외 문법  (0) 2025.05.09
easy abap 09. SELECT  (0) 2025.05.08
easy abap 08. R/3 Architecture, OPEN SQL  (0) 2025.05.07

+ Recent posts