Modify 문은 Update와 Insert를 합한 기능으로 DB table 과 Internal table을 변경할때 사용 가능합니다.
DB table 에서 사용할 때는
테이블에 키값을 가지고 있으면 데이터를 변경하고 없으면 삽입을 하고,
Internal table 에서 사용할 때는
테이블에 키값이 있으면 데이터를 변경하고 없으면 덤프가 나니 주의하셔야 합니다.
<DB Table>
MODIFY dbtab FROM TABLE itab.
DB table을 변경할 때 많이 사용하는 구문입니다.
해당 구문은 주로 DB table을 select 한 후에 프로그램 내에서 데이터 변경을 한후
DB 변경시에 사용하게 되는데,
이때 itab 내부에 동일한 key를 가진 데이터가 존재하면 덤프가 납니다.
<Internal Table>
MODIFY itab [FROM wa] [INDEX idx] [TRANSPORTING f1 ... fn] [WHERE f1 = xxxx].
[] 안에 있는것들은 필수 입력값이 아니므로 필요에 따라 사용하시면 됩니다.
- [FROM wa] : wa의 내용으로 처리를 하게 되며 wa를 기술하지 않으면
Header의 내용을 가지고 처리하게 됩니다
- [INDEX idx] : idx 라인이 변경됩니다.
- [WHERE f1 = xxxx] : 조건에 해당되는 데이터만 변경이됩니다.
- [TRANSPORTING f1 ... fn] : transporting 뒤에 기술한 필드들만 변경합니다.
*******주의********
해더라인이 있는 인터널테이블 loop 실행시
loop안에서 modify사용할때는
Loop itab.
Modify itab. [transporting]
Endloop.
조건을 추가하지않아도 괜찮지만
Loop 밖에서 modify 사용할때는
where 절이나 index를 사용하지 않으면
덤프가 나니, 꼭 변경할 라인의 조건을 걸어야합니다.
'Syntax' 카테고리의 다른 글
TYPE SORTED TABLE (0) | 2021.05.31 |
---|---|
WHERE ~ LIKE ~ % (0) | 2021.05.31 |
MOVE DATA (0) | 2021.05.27 |