IT_DataBase_Oracle

[DataBase] ORA-38104: ON 절에서 참조되는 열은 갱신할 수 없음: "IVAL"."COIL_NO"

예지콩먹어콩 2021. 10. 28. 10:48
반응형

원인 : ON절에서 참조하는 열을 갱신하려 했기 때문

 

나의 쿼리 :

MERGE INTO TABLE1 a
USING 
    (SELECT 
    SEQ ,
    substr(NUM ,1,11) AS NUM3
    ,NUM
    ,NUM2  
    FROM TABLE1
    WHERE 1=1
    AND  NUM LIKE '%-%') b
ON (a.SEQ =b.seq

AND a.NUM = b.NUM
AND a.NUM2 = b.NUM2)
WHEN MATCHED THEN 
UPDATE 
SET a.NUM= b.NUM3;

 

merge문을 쓰는 도중 저 오류가 났다. 조건절에 있는 열을 업데이트하려 했기 때문이다.

 

해결 : 업데이트하려는 열을 조건절에서 빼고, 다른 비교조건이 있다면 찾아서 대체해주면 된다.

나는 NUM2로만으로도 충분히 중복제거가 가능해서, 그냥 NUM만 조건절에서 빼줬다.

반응형