프로그래밍 Programming
/*+ bypass_ujvc */ 를 이용한 오라클 다중행 업데이트 쿼리
문장전달자
2014. 3. 22. 18:12
728x90
2개 이상의 테이블을 조인하여 table1의 특정 컬럼을 table2 의 특정 컬럼의 값으로 업데이트는 아래와 같은 형식을 취한다.
[일반적인 업데이트의 경우]
UPDATE table
SET A = 'F'
WHERE B = 'T'
[다중행 업데이트의 경우]
UPDATE /*+ bypass_ujvc */
( 조인된 select 쿼리가 위치하는 곳 )
SET A = A'
아래 예제는 table2 의 id 별로 end_date 컬럼의 max 값을 찾아 비어져있는 table1 의 end_dt 컬럼에 업데이트하는 경우이다.
[예제]
UPDATE /*+ bypass_ujvc */
(SELECT a.end_dt end1, REPLACE(b.end_date, '-', '') end2 AND a.end_dt is null AND b.end_date > '2014-03-22' |
SET end1 = end2
728x90