2017-08-17 34 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