MERGE INTO table_name alias
USING (table | view | sub_query) alias
ON ( ํ ์ด๋ธ๊ฐ ์กฐ๊ฑด )
WHEN MATCHED THEN
UPDATE SET
col = value [, col = value ...]
WHEN NOT MATCHED THEN
INSERT (col [, col ... ] )
VALUES ( value [ , value ...]) ;
-- ํ
์ด๋ธ์ ๋ฐ์ดํฐ ๊ธฐ์ค
MERGE INTO emp_test a
USING emp b
ON (a.empno = b.empno)
WHEN MATCHED THEN
UPDATE SET a.ename = b.ename || '_m'
WHEN NOT MATCHED THEN
INSERT (empno, ename)
VALUES (b.empno, b.ename);
MERGE INTO emp_test
USING dual
ON (emp_test.empno =:empno)
WHEN MATCHED THEN
UPDATE SET ename = :ename
WHEN NOT MATCHED THEN
INSERT VALUES (:empno ,:ename);
/*์ค์ต : dept_test3 ํ
์ด๋ธ์ dept ํ
์ด๋ธ๊ณผ ๋์ผํ๊ฒ ์์ฑ
๋จ, deptno๊ฐ 10,20 ์ธ ๋ฐ์ดํฐ๋ง ๋ณต์
deptํ
์ด๋ธ์ ์ด์ฉํด์ dept_test3 ํ
์ด๋ธ์ ๋ฐ์ดํฐ ๋จธ์ง
์กฐ๊ฑด = ๋ถ์๋ฒํธ๊ฐ ๊ฐ์ ๋ฐ์ดํฐ
๊ฐ์๊ฒฝ์ฐ = loc || _m
๋ค๋ฅผ๊ฒฝ์ฐ = ์ ๊ท */
MERGE INTO dept_test3
USING dept
ON (dept_test3.deptno = dept.deptno)
WHEN MATCHED THEN
UPDATE SET dept_test3.loc = dept.loc || '_m'
WHEN NOT MATCHED THEN
INSERT VALUES (dept.deptno, dept.dname, dept.loc);
MERGE INTO dept_test3
USING dual
ON (dept_test3.deptno = :deptno)
WHEN MATCHED THEN
UPDATE SET dept_test3.dname = :dname, dept_test3.loc = :loc
WHEN NOT MATCHED THEN
INSERT VALUES (:deptno, :dname, :loc);๋ฐ์ํ
'IT > SQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [ORACLE]Subquery Advanced (0) | 2022.01.11 |
|---|---|
| [ORACLE]Group function (0) | 2022.01.11 |
| [ORACLE]Multiple Insert (0) | 2022.01.11 |
| [ORACLE]ํธ๋์ญ์ (Transaction) (0) | 2022.01.11 |
| [ORACLE]DCL(Data Control Language) (0) | 2022.01.11 |