본문 바로가기

프로그램

[ORACLE]ORACLE에서 UPDATE JOIN 사용 및 MERGE INTO 로 대체방법

반응형

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