我有一个 SSIS pckage,我在其中从托管在不同服务器上的 350 个不同的 oracle 数据库中获取数据。我添加了一个 foreach 循环容器来从不同的服务器获取数据并将其存储到 1 个数据库中。我希望如果任何连接失败,那么我的包会跳过该连接并将其移至下一个连接,我该如何实现?
1 回答
0
如果我担心它不起作用,我会用 try catch 进行测试。
- 创建一个名为 canConnect 类型布尔值的变量。
- 你可能已经有了这个,但你需要一个 connectionString 变量类型的字符串
- 该连接字符串需要在 foreach 的每次迭代中设置
- 添加脚本任务
- 传入 canConnect 作为读/写和 connString 作为读
添加以下代码:
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();}如果你知道 canConnect = false 就做点什么
于 2020-05-08T19:17:52.233 回答