두개의 테이블을 비교하여 데이터 값이 다르면 update하는 쿼리를 만들고 있습니다.
추출되는 데이터의 update 대상은 여러행이며, 다른 대상의 값을 update해야 하는 상태 입니다.
Bill_Memmst 테이블과 기준이 되는 sch_Member 테이블의 DIVISION컬럼을 비교하여 Bill_Memmst.dividsion에 데이터를 UPDATE해야 하는 내용입니다.
지금 수행해본 결과로는 아래와 같이 난관에 봉착했습니다.
UPDATE /*+ BYPASS_UJVC */
(
Select
A.Division DIVISIONA, B.DIVISION DIVISIONB
From sch_Member A , Bill_Memmst B
Where A.Email = B.Email
And A.Division != Nvl(B.Division,'1')
)
SET DIVISIONB = DIVISIONA;
"ORA-01779: 키-보존된것이 아닌 테이블로 대응한 열을 수정할 수 없습니다"
------------------------------------------------------------------------------------------------
Merge Into Bill_Memmst B
Using (
SELECT *
From sch_Member
)A On (A.Email = B.Email
AND A.DIVISION != Nvl(B.DIVISION,'1'))
When Matched Then
Update Set
B.DIVISION = A.DIVISION
"SQL 오류: ORA-38104: ON 절에서 참조되는 열은 갱신할 수 없음: "B"."DIVISION"
DB 쿼리문을 작성해본지가 백만년인지라...머릿속이 하얗습니다.
해결 할 수 있는 방법이나 제가 잘못쓰고 있는 구문이 있다면 알려주세요~
감사합니다.