안녕하세요~

 

MS-SQL2012, Oracle 사이의 Merge Into 구문 문의 입니다.

 

MS-SQL에서 실행하여 Oracle에 Insert , Update 하는 SP를 만들려고 합니다.

 

아래 SP 참고.

 

MS-SQL에서 로컬의 Data와 Oracle의 Data를 OpenQuery를 사용하여 비교 후

 

Merge Into 구문을 사용하여 Match 이면 Oracle DB에 Update를,

 

NOT MATCHED이면  Oracle DB에 Insert 를 하는 SP인데. 오류가 나서요.

 

오류원인을 확인부탁드립니다~~

 

 

-----------------------------------------------------------------------------------------------------------


Create PROCEDURE [dbo].[SP_KHS](
 @P_DATE  VARCHAR(8) = NULL
)
AS
BEGIN
 
 begin tran

 MERGE INTO (
 SELECT @P_DATE AS WKDT, IMST_ITEM, COUNT(*) AS QTYS
   FROM T_MODM
  WHERE RTCL_DATE >= CONVERT(CHAR(8),DATEADD("DAY", -1, GETDATE()),112)
  GROUP BY IMST_ITEM
 ) SYS   -- MS-SQL DB
 USING
 (SELECT * FROM OPENQUERY(SSLOC,'SELECT WKDT, IMST_ITEM, QTYS
    FROM T_WKRO
    WHERE WKDT = ''20130101'')
 ) LOC  -- Oracle DB
    ON  SYS.WKDT = LOC.WKDT AND SYS.IMST_ITEM = LOC.IMST_ITEM
  WHEN MATCHED THEN

     UPDATE OPENQUERY(SSLOC,'SELECT  *
          FROM T_WKRO
          WHERE WKOR_WKDT = ''20130101'')
     SET WKRO_OQTY = SYS.QTYS

  WHEN NOT MATCHED BY TARGET THEN
  
  INSERT OPENQUERY(SSLOC,'SELECT WKDT, IMST_ITEM, QTYS
          FROM T_WKRO
         WHERE WKDT = ''20121205''
        ')
  SELECT SYS.WKDT, SYS.IMST_ITEM, SYS.QTYS

 IF(@@ERROR <> 0 )  GOTO ERR

 commit tran
 return
ERR:
 rollback tran
 return

 

-----------------------------------------------------------------------------------------------------------

END

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 40012
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 21950
6323 dll로 만든 확장프로시져를 일정시간에 다시 올리기가 가능한가요? [2] 블랙 2013.01.15 6137
6322 [질문]유니코드 변환 방법 [3] 구본헌 2013.01.15 8327
6321 SQL 삭제 후 오류 [1] 해바라기 2013.01.15 7358
6320 프로시져내 스트링 검색 [7] 전념 2013.01.15 6418
6319 XML관련... [2] 메칸더 2013.01.15 7106
6318 데이터 두줄로 표현하기~!ㅠㅠ [2] 뽀챙 2013.01.14 8502
6317 특정 코드가 있는 칼럼의 총 카운터를 얹고 싶은데요. [2] 변닷컴 2013.01.14 6348
6316 mssql에 있는 테이블들을 오라클로 가져올려고 하는데 어떻게하나요? [1] 알려주세용 2013.01.14 7122
6315 전체 백업할때 나타나는 메세지의 의미 [2] 레지덥던이불 2013.01.14 6383
» MS-SQL2012, Oracle 사이의 Merge Into 문의 입니다. [3] 착한이 2013.01.14 13416
6313 ROW_NUMBER()에서 정렬할 필드 문제 [2] 손담비 2013.01.14 8696
6312 테이블의 컬럼 데이터 형식 추출 [4] l3lue 2013.01.11 7769
6311 DB의 테이블및 데이타복사....... [13] 문수정 2013.01.11 6737
6310 메모리 반환 관련 문의 드립니다 [2] 토토로 2013.01.11 9567
6309 sqlserver를 설치할 계정 [2] 토토로 2013.01.11 6940
6308 쿼리할 필드네임을 모를때? [2] 손담비 2013.01.10 7843
6307 쿼리 질문좀 할게요~ [1] 뽀챙 2013.01.10 7295
6306 2000에서 rownum으로 페이징에 관한 질문입니다. [4] 카루카루 2013.01.10 7107
6305 복제 장애시 복구는 어떻게? _무_ 2013.01.10 7152
6304 update 질문드려요.. [4] 왕초보임돠 2013.01.10 6518





XE Login