2017-08-17 67 views
0

我們正在嘗試使用鏈接服務器將一些數據從SQL Server發佈到Oracle。數據有時插入正確,但有時會失敗。不知道它爲什麼失敗。SQL Server鏈接服務器嘗試捕獲不工作

我在SQL Server存儲過程中保留了一個TRY catch塊,但沒有捕獲。你能幫我解決這個問題嗎?

瀏覽過的幾個網站在這方面,但不知何故,它沒有工作

我的代碼:

INSERT INTO OPENQUERY (SomeDB, 'SELECT a, s, d, f, e FROM XYZ') 
    SELECT 
     a, s, d, f, @e 
    FROM  
     @tbltest 
+1

什麼是你得到的錯誤,嘗試趕不會發現大部分的錯誤 – TheGameiswar

+0

我沒有得到任何錯誤,如果我嘗試手動插入相同的數據,它的工作原理 – user6255719

+0

請你詳細解釋一下,然後'數據正確插入次,但有時失敗 – TheGameiswar

回答

0

你可能會想這樣

BEGIN TRY 
    INSERT INTO [database]..[Table]([Column1], [Column2], [Column3]) 
     SELECT 
      [Column1], [Column2], [Column3] 
     FROM 
      [database]..[SourceTable] 
END TRY 
BEGIN CATCH 
    INSERT INTO [database]..[ErrorTable]([Column1], [Column2], [Column3]) 
     SELECT 
      [Column1], [Column2], [Column3] 
     FROM [database]..[SourceTable] 
END CATCH 
+0

我使用鏈接查詢插入,並且我有TRY捕獲,但是,我的TRY捕獲通常不是特定於此查詢的,您是否希望我在特定查詢中執行此操作 – user6255719

0
結構

你可以試試像這樣的東西

BEGIN TRY 
    INSERT INTO [database]..[Table]([Column1], [Column2], [Column3]) 
     SELECT 
      a, s, d, f, e 
     FROM 
      LINE_INTG.STG_PRDCTN_RUN_SHIFT_DTL 
END TRY 
BEGIN CATCH 
    INSERT INTO [database]..[ErrorTable]([Column1], [Column2], [Column3]) 
     SELECT 
      a, s, d, f, e 
     FROM LINE_INTG.STG_PRDCTN_RUN_SHIFT_DTL 
END CATCH