본문 바로가기

닷컴's_열공/Database

[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 AUSING ( 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