안녕하세요 쿼리가.. 가능할꺼같은데 안되고 있어서 질문드려요~
A, B 두개의 테이블이 있습니다.
A테이블에서 select 후 B테이블에 update를 하고싶습니다!!
양쪽 테이블에는 여러건의 데이터가 있습니다. 1명의 사람에 대해서만 select후 update를 하려고합니다.
구상중인 쿼리는
UPDATE /*+ bypass_ujvc */
(
select b.컬럼1, b.컬림2, b.컬럼3
from 업데이트해야할 테이블 a, 검색하는 테이블 b
where b.code = '02'
and b.seq = '1122'
and a.code = b.code
and a.b_code = b.b_code
)
zip = 컬럼1
, zip_1 = 컬럼2
, zip_2 = 컬럼3
;
위와 같이 쿼리를 날려보니
ORA-01733 가상열은 사용할 수 없습니다. 라는 에러가 나왔습니다.
컬럼은 양쪽 테이블 있는것을 확인했습니다~
위와 같이 쿼리를 날리면 안되는걸까요?
1. 인라인뷰 select 절에 zip, zip_1, zip_2 가 있어야죠.
2. 가상열 에러가 난걸 보면 쿼리가 위와 같이 단순하지 않을 것으로 예상됩니다.
3. bypass_ujvc 힌트는 11G 부터는 유효하지 않습니다.
4. 조인 업데이트 참조 : http://gurubee.net/article/79308