.. 오라클을 거의 안 써봐서..;;
-- Oracle --
-- 1. SubQuery 를 이용한 Update
UPDATE emp e
SET e.dname = (SELECT d.dname FROM dept d WHERE d.deptno = e.deptno)
WHERE EXISTS (SELECT 0 FROM dept d WHERE d.deptno = e.deptno)
;
-- 2. Updatable Join View 이용
-- 단, d.deptno 가 반드시 PK 이어야 함
-- 10G 까지는 PK 아니더라도 힌트로 제어 가능(/*+ bypass_ujvc */)
UPDATE /*+ bypass_ujvc */
(SELECT e.dname
, d.dname AS dname_new
FROM emp e
, dept d
WHERE d.deptno = e.deptno
)
SET dname = dname_new
;
-- 3. Merge
MERGE INTO emp e
USING dept d
ON (d.deptno = e.deptno)
WHEN MATCHED THEN
UPDATE SET e.dname = d.dname
;
결국 머지가 가장 쉽더라..
'생존기술_IT > DB [MS,My,Orcl]' 카테고리의 다른 글
[DB] 다국어 페이지를 위한 DB설정 팁.. (2) | 2020.10.20 |
---|---|
[ORACLE] 오라클 디벨로퍼 단축키.. (0) | 2020.10.06 |
[MYSQL] INDEX 관련.. (0) | 2020.07.31 |
[SQL - MYSQL, MSSQL, ORACLE] INSERT+UPDATE 동시에.. (0) | 2020.07.14 |
[MYSQL] 유저 생성 / 권한 부여하기 (0) | 2020.06.23 |