상세 컨텐츠

본문 제목

[Oracle] ORA-38104: ON 절에서 참조되는 열은 갱신할 수 없음

Oracle

by 강정_DEV 2022. 8. 11. 21:54

본문

728x90

 

SQL 오류: ORA-38104: ON 절에서 참조되는 열은 갱신할 수 없음: 
38104. 00000 -  "Columns referenced in the ON Clause cannot be updated: %s"
*Cause:    LHS of UPDATE SET contains the columns referenced in the ON Clause

얼마전 MERGE 문을 실행하다가 ORA-38104 오류를 만났다.

원인은 ON절에서 쓰인 칼럼을 UPDATE에 포함을 시켜서였다. 멍 때리고 아무 생각 없이 하다 보니 이런 간단한 실수를 했던 것 같다.

MERGE INTO BOOK_INFO_TBL A USING
(SELECT '1111' AS BOOK_KEY,
  SYSDATE      AS INSTALL_DATE,
  0            AS WORK_TYPE,
  '311'        AS CODE
FROM DUAL
) B ON (A.BOOK_KEY = B.BOOK_KEY)
WHEN MATCHED THEN
  UPDATE
  SET 
    --ON 절 조건 지우기
    --A.BOOK_KEY   = B.BOOK_KEY,
    A.INSTALL_DATE = B.INSTALL_DATE,
    A.WORK_TYPE    = B.WORK_TYPE,
    A.CODE         = B.CODE WHEN NOT MATCHED THEN
  INSERT
    (
      BOOK_KEY,
      INSTALL_DATE,
      WORK_TYPE,
      CODE
    )
    VALUES
    (
      B.BOOK_KEY,
      B.INSTALL_DATE,
      B.WORK_TYPE,
      B.CODE
    ) ;

UPDATE 부분에서 ON에서 비교한 KEY 값을 제외하니 정상 동작하였다.

 

 

반응형

관련글 더보기

댓글 영역