프로그래밍

오라클 11g update select

언젠간 프로 2013. 6. 5. 14:18

오라클 11g에서는 bypass_ujvc 힌트가 동작되지 않는다. 


이 경우 merge를 사용하여 select로 업데이트 하는 방법을 대체 할 수 있다. 


merge into 업데이트 할 테이블 a

using 업데이트에 쓰일 값을 갖고 있는 테이블 b

    on (a.조인컬럼 =  b.조인컬럼)

 when matched then

 update set a.업데이트적용할 컬럼 = b.적용할 값 컬럼


위 쿼리는 두개의 테이블을 match 시킨 후 동일한 데이터가 있을경우만 해당 컬럼에 데이터를 업데이트하는 쿼리다. 


동일한 데이터가 없을경우 insert도 함께 넣을 수 있다.