๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿง‘‍๐Ÿ’ผ SAP/ABAP

[SAP ABAP] MODIFY์™€ UPDATE ์ฐจ์ด์ 

by Jay Din 2023. 12. 27.
728x90
๋ฐ˜์‘ํ˜•

์ •๋ฆฌ

  MODIFY UPDATE
๋Œ€์ƒ ๋‚ด๋ถ€ ํ…Œ์ด๋ธ”
(ABAP Dictionary์— ์ •์˜๋œ ํ…Œ์ด๋ธ”)
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”
์ ์šฉ ๋ฒ”์œ„ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘์—๋งŒ ์˜ํ–ฅ ํŠธ๋žœ์žญ์…˜ ์ปค๋ฐ‹ ์‹œ ์˜๊ตฌ์  ์˜ํ–ฅ
๋ฐ์ดํ„ฐ ๋ฝ ๋‚ด๋ถ€ ํ…Œ์ด๋ธ” ๋ ˆ์ฝ”๋“œ์— ๋ฝ ๋ฐœ์ƒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ ˆ์ฝ”๋“œ์— ๋ฝ ๋ฐœ์ƒ
ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ ํŠธ๋žœ์žญ์…˜ ์ปค๋ฐ‹ํ•˜๊ธฐ ์ „๊นŒ์ง€๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ˜์˜๋˜์ง€ ์•Š ํŠธ๋žœ์žญ์…˜ ์ปค๋ฐ‹ ์‹œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์˜๊ตฌ ๋ฐ˜์˜

 

์ผ๋ฐ˜ db์— ์‚ฌ์šฉํ•˜๋Š” modify์™€ ์ธํ„ฐ๋„ํ…Œ์ด๋ธ”์— ์‚ฌ์šฉํ•˜๋Š” modify๋Š” ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

db์— modify๋ฅผ ํ•˜๋ฉด ํ‚ค๊ฐ’์ด ์ผ์น˜ํ•˜๋Š” ์ž๋ฃŒ๊ฐ€ ์žˆ์œผ๋ฉด update, ์—†์œผ๋ฉด insert๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ธํ„ฐ๋„ํ…Œ์ด๋ธ”์—์„œ๋Š” update ์—ญํ• ๋งŒ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ž๋ฃŒ๊ฐ€ ์—†์„ ๊ฒฝ์šฐ์— insert๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ธํ„ฐ๋„ํ…Œ์ด๋ธ”์— ์ž๋ฃŒ๋ฅผ modify ํ•˜์‹ค๋•Œ ์ž๋ฃŒ๊ฐ€ ์—†๋‹ค๋ฉด append (๋˜๋Š” insert) ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

MODIFY

`MODIFY` ๋ช…๋ น์–ด๋Š” ABAP ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋‚ด๋ถ€ ํ…Œ์ด๋ธ”์„ ๋ณ€๊ฒฝํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋‚ด๋ถ€ ํ…Œ์ด๋ธ”์€ ABAP Dictionary์— ์ •์˜๋œ ํ…Œ์ด๋ธ”์ด๋ฉฐ, ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘์—๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

* ๋‚ด๋ถ€ํ…Œ์ด๋ธ” ์ด๋ž€?
๋‚ด๋ถ€ํ…Œ์ด๋ธ”์€ ABAP Dictionary์— ์ •์˜๋œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ, ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘์—๋งŒ ์‚ฌ์šฉ๋˜๋Š” ์šฉ๋„๋กœ ์“ฐ์ž…๋‹ˆ๋‹ค.
DATA: lt_data TYPE TABLE OF my_table,
      ls_data TYPE my_table.

" ๋ฐ์ดํ„ฐ ์กฐํšŒ
SELECT * FROM my_table INTO TABLE lt_data WHERE condition.

LOOP AT lt_data INTO ls_data.
  " ์กฐ๊ฑด์— ๋”ฐ๋ผ ํ•„๋“œ ๋ณ€๊ฒฝ
  IF ls_data-field = 'A'.
    ls_data-field = 'B'.
    MODIFY my_table FROM ls_data.
  ENDIF.
ENDLOOP.

 

  • `MODIFY` ๋ฌธ์€ ๋‚ด๋ถ€ ํ…Œ์ด๋ธ” `my_table`์—์„œ ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋ ˆ์ฝ”๋“œ์˜ ํ•„๋“œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
  • ๋‚ด๋ถ€ ํ…Œ์ด๋ธ”์€ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘์—๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋ฉฐ, ํŠธ๋žœ์žญ์…˜ ์ปค๋ฐ‹ํ•˜์ง€ ์•Š์•„๋„ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ฆ‰์‹œ ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค.
  • ๋‚ด๋ถ€ ํ…Œ์ด๋ธ”์˜ ๋ ˆ์ฝ”๋“œ์— ๋Œ€ํ•œ ๋ฝ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์‹คํ–‰ ์ค‘์—๋งŒ ์˜ํ–ฅ

`MODIFY`๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€ ํ…Œ์ด๋ธ”์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒฝ์šฐ, ์ด ๋ณ€๊ฒฝ์€ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘์—๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

๋‚ด๋ถ€ ํ…Œ์ด๋ธ”์€ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฉ”๋ชจ๋ฆฌ์— ์กด์žฌํ•˜๋ฉฐ, ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋˜๊ฑฐ๋‚˜ ํ•ด๋‹น ํ…Œ์ด๋ธ”์ด ํ•ด์ œ๋˜๋ฉด ๋ณ€๊ฒฝ๋œ ๊ฐ’์€ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ `MODIFY`๋กœ ๋ณ€๊ฒฝํ•œ ๋‚ด์šฉ์€ ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

 

UPDATE

`UPDATE` ๋ช…๋ น์–ด๋Š” ABAP ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์„ ๋ณ€๊ฒฝํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ, ํŠธ๋žœ์žญ์…˜์„ ์ปค๋ฐ‹ํ•  ๋•Œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์˜๊ตฌ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค.

DATA: lv_value TYPE string.

" ๋ฐ์ดํ„ฐ ์กฐํšŒ
SELECT field FROM my_table INTO lv_value WHERE condition.

" ํ•„๋“œ ๊ฐ’ ๋ณ€๊ฒฝ
lv_value = 'New Value'.

" ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ” ์—…๋ฐ์ดํŠธ
UPDATE my_table SET field = lv_value WHERE condition.

 

  • `UPDATE` ๋ฌธ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ” `my_table`์—์„œ ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋ ˆ์ฝ”๋“œ์˜ ํ•„๋“œ๊ฐ’์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์€ ํŠธ๋žœ์žญ์…˜์„ ์ปค๋ฐ‹ํ•  ๋•Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์˜๊ตฌ์ ์œผ๋กœ ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ๋ฝ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํŠธ๋žœ์žญ์…˜ ์ปค๋ฐ‹ ์ด์ „๊นŒ์ง€ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์—๊ฒŒ ๋ณ€๊ฒฝ ๋‚ด์šฉ์ด ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•