안녕하세요 (_ _) 오랜만에 질문 올려요~
암호화 관련 내용인데, a 테이블에 update를 하면 b테이블에 일치하는 조건이 있을 경우 update를, 없을 경우 insert를 하여라!
오늘의 과제인데... 이거 생각보다 했갈리네요 ㄱ - ..... 다음은 트리거안에 있는 merge into 구문입니다.
merge into b
using dual
on (b.customer_id = :old.customer_id )
when matched then
UPDATE
SET ID=:new.ID, NAME=:new.NAME
when not matched then
INSERT
( ID, NAME )
VALUES
( :new.ID, :new.NAME;)
update b
set ID=1, NAME='김선호'
where id = 10000194; 실행시
ORA-38104: Columns referenced in the ON Clause cannot be updated: "ID"
라고 나옵니다.
안되가지고 중간에 merge into 구문 빼고 dbms_output.put_line으로 들어오는 old와 new id 값을 체크해봤는데
new.id : customer: 1
old.id : customer: 10000194
라구 잘 나왔거든요. 근데 왜 저런 오류가 나오는지 도통 이해가 안가네요..... 고수님들 도움 부탁드립니다!!