MERGE문으로 update, insert시..Select로 insert가 안되나요?? 0 3 21,671

by 손님 [2009.09.28 15:35:51]


MERGE INTO TestT AA
USING OrgT BB
ON (AA.Cod = BB.Cod And BB.Cod = 'N1234')
WHEN MATCHED THEN
  UPDATE
     SET AA.UIDCOD = 'KKK'
WHEN NOT MATCHED THEN
  INSERT INTO (Select * From OrgT  Where Cod = 'N1234');

 

MERGE문 사용시 Select..insert가 안되나요?

ORA-00926 : 누락된 Values 키워드 에러가 나네요...

 

 

by 마농 [2009.09.28 16:37:39]
MERGE INTO TestT AA
USING (SELECT * FROM OrgT WHERE Cod = 'N1234') BB
ON (AA.Cod = BB.Cod)
WHEN MATCHED THEN
UPDATE SET AA.UIDCOD = 'KKK'
WHEN NOT MATCHED THEN
INSERT VALUES (bb.cod, bb.col1, bb.col2, ...)
;

by TeLl2 [2009.09.28 16:44:10]
MERGE의 경우는 쿼리에서도 나타나듯이
비교 테이블(USING..)의 로우와
대상 테이블의 로우를 비교하여 매치가 되면 패치된 로우의 값(혹은 상수값)으로
대상이 되는 테이블에 UPDATE 아니면 INSERT 하도록 동작합니다.
SELECT 구문으로 다량의 건을 인서트 할 수는 없습니다.

by 질문이 [2009.09.28 16:51:22]
아..Select ..insert를 쓸수는 없군요..ㅠㅠ

답글 감사드립니다..좋은 하루 되세요..^^
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입