ORACLE에서 UPDATE JOIN 사용 및 MERGE INTO 로 대체방법
오라클에서 UPDATE JOIN을 사용할 일이 생겨서 사용해보려했으나 안된다.
쿼리는 다음과 같이 작성
UPDATE (
SELECt A.col01 as col01
, B.col02 as col2
FROM TAB01 A
, TAB02
WHERE A.col_k = b.col_k
) SET
col2 = col01
;
수행 시 오류가 발생했다.
검색해보니 where 조건이 들어가는 것이 key(pk) 조건이어야 한다고 한다.
(참고 url : http://oracleerp.co.kr/bbs/board.php?bo_table=database&wr_id=3 )
키 아닌 경우 UPDATE하고 싶다면 bypass_ujvc 힌트를 사용하라고 한다.
사용하려고 검색해보니 대신 MERGE INTO 를 사용하면 된다고 해서 MERGE INTO를 사용해서 처리했다.
MERGE INTO TAB02 A
USING (
SELECT *
FROM TAB01
) B ON A.col_k = B.col_k
WHEN MATCHED THEN
UPDATE SET
col2 = B.col01
;
추가로 찾아보니 bypass_ujvc 의 경우 오라클 11에서 공식적으로 지원을 안한다고 했답니다.
참고url : http://m.dbguide.net/about.db?cmd=view&boardConfigUid=19&boardUid=175980
참고url
http://oracleerp.co.kr/bbs/board.php?bo_table=database&wr_id=3
http://m.dbguide.net/about.db?cmd=view&boardConfigUid=19&boardUid=175980