MODIFY는 **테이블의 데이터를 변경(수정)**하거나 **없으면 삽입(Insert)**도 해주는 명령어
1. DB 테이블에 MODIFY 하기
DATA: gs_scarr TYPE scarr.
gs_scarr-carrid = 'AA'.
gs_scarr-carrname = 'Modified Airline'.
gs_scarr-url = 'https://www.modified.com'.
MODIFY scarr FROM gs_scarr.
- 단일 행 수정(워크 에어리어 사용)
- scarr 테이블에서 carrid = 'AA'인 레코드를 찾아 수정함
- carrid = 'AA'가 없다면 새로 삽입된다.
2. 여러 행 수정 (내부 테이블 사용)
DATA: gt_scarr TYPE STANDARD TABLE OF scarr,
gs_scarr TYPE scarr.
gs_scarr-carrid = 'AA'.
gs_scarr-carrname = 'Modified AA'.
APPEND gs_scarr TO gt_scarr.
gs_scarr-carrid = 'AF'.
gs_scarr-carrname = 'Modified AF'.
APPEND gs_scarr TO gt_scarr.
MODIFY scarr FROM TABLE gt_scarr.
- 내부 테이블 gt_scarr에 담긴 여러 개의 레코드를 한꺼번에 수정.
- 마찬가지로, 없으면 추가됨.
4. 내부 테이블에서 MODIFY
DATA: gt_itab TYPE STANDARD TABLE OF scarr,
gs_itab TYPE scarr.
READ TABLE gt_itab INTO gs_itab WITH KEY carrid = 'AA'.
IF sy-subrc = 0.
gs_itab-carrname = 'Changed from loop'.
MODIFY gt_itab FROM gs_itab INDEX sy-tabix.
ENDIF.
- 내부 테이블에서 조건을 만족하는 값을 찾아서 수정.
- MODIFY ... INDEX sy-tabix는 꼭 READ 결과의 인덱스를 써줘야 함.
문법 | 설명 |
MODIFY dbtab FROM wa. | DB에서 키 값 기준으로 수정/삽입 |
MODIFY dbtab FROM TABLE itab. | 여러 행 수정 or 삽입 |
MODIFY itab FROM wa INDEX n. | 내부 테이블 n번째 수정 |
'SAP' 카테고리의 다른 글
easy abap 16. subroutine parameter- call by value, call by reference, call by value and result (0) | 2025.05.10 |
---|---|
easy abap 15. 효율적인 SQL 구문 작성 (0) | 2025.05.09 |
easy abap 13. Delete (0) | 2025.05.09 |
easy abap 12. Update (0) | 2025.05.09 |
easy abap 11. INSERT (0) | 2025.05.09 |