Oracle에서 건설적 병합을 수행하고자합니다. 즉 원본 테이블에 일치하는 레코드가있는 경우 현재 타임 스탬프가있는 새 레코드를 대상 테이블에 추가해야합니다.병합, 일치하는 삽입시
Oracle에서 병합을 사용하여 어떻게 수행합니까? 아래는 "누락 된 키워드"오류를 제공하는 내 코드입니다.
merge into studLoad sl
using student s
on(s.studID=sl.studID)
when matched
then
insert(sl.studID,sl.studName)
values(s.studID||'abc',s.studName)
when not matched
then
insert(sl.studID,sl.studName)
values(s.studID,s.studName);
또한 현재의 타임 스탬프를 studName
과 함께 추가하는 방법을 알지 못합니다. 같은 제안은 환영받을 것입니다.
하지만 전체 소스 테이블을 확인하고 업데이트 된 모든 레코드를 확인하고 업데이트 된 레코드에 대한 새 항목을 대상 테이블에 추가하고 싶습니다. 어떻게하면 단일 삽입을 사용합니까? 나는 병합을 사용해야한다. – z22
@ z22 - 죄송합니다. 이해가 안됩니다. 경기가있는 경우와 경기가없는 경우의 차이점은 무엇입니까? 게시 한 질문에서 두 경우 모두 INSERT를 수행합니다. –
이 경우입니다. 레코드가 존재하지 않는 경우 삽입하십시오. 존재하는 경우이를 그대로두고 타임 스탬프와 새 대리 키와 함께 새 레코드를 삽입하십시오. – z22