0

我们使用 SSIS 项目部署模型将数据从 Oracle 11 移动到 SQL 2014。我们使用 Attunity 3.0 连接器。

oracle 数据源的连接字符串是项目参数,也存储在 SQL 表中。

我们使用自定义存储过程

  • 获取存储在 sql 表中的此连接字符串
  • 设置项目参数(通过 [SSISDB].[catalog].[set_execution_parameter_value] )
  • 执行包(通过 [SSISDB].[catalog].[start_execution] )

我们使用 [SSISDB].[internal].[execution_parameter_values] 检查参数值是否在运行时被我们存储在后端的连接字符串替换。

有趣的是,即使 Oracle 连接字符串在运行时被替换,包仍然尝试使用它已经遵守的连接字符串(项目参数)。以类似方式连接到 SQL 源时,我们没有同样的问题。

你有什么建议吗?这是一个已知问题吗?

4

1 回答 1

0

找到了解决方案。事实证明,我们存储在表中的 oracle 连接字符串没有在服务器名称前面加上“SERVER =”。连接字符串将立即以 For 例如 - 'x1abc01.something.com:1234/x1abc01;ORACLEHOME=;ORACLEHOME64=;WINAUTH=0;' 开头。将连接字符串更改为“ SERVER = x1abc01.something.com:1234/x1abc01;ORACLEHOME=;ORACLEHOME64=;WINAUTH=0;” 它现在开始工作了。我们通过使用一个连接字符串部署 ssis 解决方案并使用数据库中的不同连接字符串对其进行更改来对其进行测试,并且覆盖的值仍然存在。

但是,当运行时连接字符串具有无效值并且它没有报告为错误并且 ssis 悄悄地切换到 Project Param 中的设计时间值时,断开连接仍然很奇怪。

于 2017-07-22T17:19:39.280 回答