๐Ÿ“† Today I Learned(๊ฐœ๋ฐœ์–ธ์–ดํ•™์Šต)/ORACLE(DB)

[ORACLE] ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ” ์กฐ์ธ ํ›„ ์—…๋ฐ์ดํŠธ

๊ฐœ์š” : 

ํŠน์ • ํ…Œ์ด๋ธ”์—์„œ ํŠน์ • ๋ฉ”๋‰ด์— ์†Œ์†๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด์•ผํ•˜๋Š” ์ผ์ด ์ƒ๊ฒผ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ ํ…Œ์ด๋ธ”์—๋Š” ์กฐ๊ฑด์ ˆ์„ ์ค„ ์ˆ˜ ์žˆ์„ ๋งŒํ•œ ์ปฌ๋Ÿผ์ด ์กด์žฌํ•˜์ง€ ์•Š์•˜๊ณ  ๊ธฐ์กด์—๋„ ๋‹ค๋ฅธํ…Œ์ด๋ธ”๊ณผ ์กฐ์ธํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ํ…Œ์ด๋ธ”์ด์—ˆ๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์—…๋ฐ์ดํŠธ๋ฌธ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋˜ํ•œ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”๊ณผ์˜ ์กฐ์ธ์„ ํ†ตํ•ด ์กฐ๊ฑด์„ ์ฃผ์–ด ์ˆ˜ํ–‰ํ•ด์•ผํ•œ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด ํ•ด๋ณด์•˜์ง€๋งŒ ๊ธฐ์กด UPDATE๋ฌธ์œผ๋กœ๋Š” ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜๋‹ค.

 

๊ธฐ์กด ์‹คํ–‰๋ฌธ :

--์„ค๋ช…
UPDATE 
    (
        SELECT *
          FROM
               [๋ฉ”๋‰ด์ฝ”๋“œ๋ฅผ ํฌํ•จํ•œ ํŒŒ์ผ๊ด€๋ จ ํ…Œ์ด๋ธ”] R,
               [ํŒŒ์ผ๊ด€๋ จ ์ •๋ณด๋ฅผ ๋‹ด์€ ํ…Œ์ด๋ธ”] F
         WHERE r.orikey = f.file_idx -- [์กฐ์ธ์กฐ๊ฑด]
           AND r.[๋ฉ”๋‰ด๊ตฌ๋ถ„์ปฌ๋Ÿผ] = '813' -- ๋ฉ”๋‰ด๊ตฌ๋ถ„
           AND f.[ํŒŒ์ผํƒ€์ž…๊ตฌ๋ถ„์ปฌ๋Ÿผ] = '364' -- ํŒŒ์ผํƒ€์ž…๊ตฌ๋ถ„
    )
   SET [๋ณ€๊ฒฝ์˜ˆ์ •์ปฌ๋Ÿผ] = '[๋ณ€๊ฒฝ์˜ˆ์ •๊ฐ’]';
   
   
--์‹ค์ œ์‹คํ–‰๋ฌธ
UPDATE 
    (
        SELECT *
          FROM
               RP_RELATION_DATA R,
               RP_CULTURAL_RELATION F
         WHERE r.orikey = f.file_idx
           AND r.relmenucd = '813' -- ์œ ์ ๋ชฉ๋ก menucd
           AND f.FILETYPE_CD = '364' -- ์ด๋ฏธ์ง€ ํŒŒ์ผ ํƒ€์ž…
    )
   SET COPYRIGHT = '[๋ณ€๊ฒฝ์˜ˆ์ •๊ฐ’]';

- ์ฒ˜์Œ ์ƒ๊ฐํ–ˆ๋˜๊ฒƒ์€ ์ผ๋ฐ˜ ์—…๋ฐ์ดํŠธ๋ฌธ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์œ„์™€๊ฐ™์ด ์กฐํšŒ์กฐ๊ฑด์„ ๋งŒ๋“ค์–ด ํ…Œ์ด๋ธ”์„ ์กฐํšŒํ•ด๋‘๊ณ  SET์ ˆ์— ๋ณ€๊ฒฝ๋‚ด์šฉ์„ ์ž…๋ ฅํ•ด๋‘๋ฉด ๊ฐ€๋Šฅํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์—ˆ๋‹ค.

 

 

ํ•ด๊ฒฐ๋œ ์‹คํ–‰๋ฌธ :

MERGE INTO
    RP_CULTURAL_RELATION A
USING
    RP_RELATION_DATA B
ON
    (
    A.FILE_IDX = B.ORIKEY
    AND B.RELMENUCD = '813'
    AND A.FILETYPE_CD = '364'
    )
WHEN MATCHED
THEN
UPDATE SET A.COPYRIGHT = '[๋ณ€๊ฒฝ์˜ˆ์ •๊ฐ’]';

- MERGE๋ฌธ์„ ํ™œ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•จ ์†”์งํžˆ ํ•ด๊ฒฐ๋œ ์ง€๊ธˆ๋„ ํฌ๊ฒŒ ์ฐจ์ด๋ฅผ ๋Š๋ผ์ง€ ๋ชปํ•˜๊ฒ ๋‹ค...