作为项目参数的SSIS Oracle连接字符串在运行时未被替换

时间:2017-07-18 19:37:46

标签: sql oracle ssis ssis-2012 attunity

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

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

我们使用

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

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

有趣之处在于,即使在运行时更换了Oracle连接字符串,程序包仍会尝试使用已遵守的连接字符串(Project Params)。当以类似的方式连接到SQL源时,我们没有相同的问题。

你有什么建议吗?这是一个众所周知的问题吗?

1 个答案:

答案 0 :(得分:0)

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

然而,当运行时连接字符串具有无效值并且未报告为错误并且ssis在Project Param中静默切换到设计时间值时,仍发生断开连接的情况仍然很奇怪。