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
'닷컴's_열공 > Database' 카테고리의 다른 글
내국인/외국인 주민등록번호 유효성 검사 함수 (주민번호, 검출, SQL) (0) | 2019.01.22 |
---|---|
SQL 세로를 가로로 만들기 참조... (0) | 2017.07.24 |
유용한 plsql 정보들. (0) | 2015.06.26 |
count 보다 exists를 쓰는것이 더 좋습니다. (0) | 2012.09.03 |
LOCK 문제를 일으키는 SQL 명령 찾기 (0) | 2012.09.03 |