【问题标题】:Error handling in SSIS Dynamic Connection managerSSIS 动态连接管理器中的错误处理
【发布时间】:2020-05-08 04:22:26
【问题描述】:

我有一个 SSIS pckage,我在其中从托管在不同服务器上的 350 个不同的 oracle 数据库中获取数据。 我添加了一个 foreach 循环容器来从不同的服务器获取数据并将其存储到 1 个数据库中。 我希望如果任何连接失败,那么我的包会跳过该连接并将其移至下一个连接,我该如何实现?

【问题讨论】:

    标签: sql sql-server ssis ssis-2012 msbi


    【解决方案1】:

    如果我担心它不起作用,我会使用 try catch 进行测试。

    1. 创建一个名为 canConnect 的布尔型变量。
    2. 你可能已经有了这个,但你需要一个 connectionString 变量类型的字符串
    3. 需要在foreach的每次迭代中设置该连接字符串
    4. 添加脚本任务
    5. canConnect 作为读/写传递,connString 作为读传递
    6. 添加以下代码:

      Dts.Variables["canConnect"].Value = false;
      string cstr = Dts.Variables["connString"].Value;
      try
      {
           using(System.Data.OleDB.OleDbConnection conn = new System.Data.OleDB.OleDbConnection(cstr);)
            {
                conn.Open();
                Dts.Variables["canConnect"].Value = true;
      
            }
      }
      catch{}
      finally
      {conn.Close();}
      
    7. 如果你知道 canConnect = false 就做点什么

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多