SSIS Ole DB连接挂起没有错误

时间:2019-11-14 13:57:39

标签: sql-server ssis

我正在使用Visual Studio 2017的Microsoft SQL Server数据工具中的SSIS项目。我们必须使用OleDB Source组件将Oracle 12C数据库中的数据加载到SQL Server 2017数据库中。 如果我们从Visual Studio中执行程序包,这将很好地工作,但是,一旦将其部署到SQL Server并从那里执行,一旦程序包到达DataFlow任务,程序包就会无限期地挂起。 我们收到的最后两个SSIS执行消息是:

OnPrevalidate: package_name: Validation has started.
OnInformation: package_name: Information: Validation phase is beginning.

该软件包不再继续运行,并且永久保持在“运行”状态。 我们在开发人员计算机和SQL Server上都安装了相同的ODAC(64位)组件包。

我们还尝试使用功能齐全的ADO.NET源,但是它缺少“从变量查询”功能,并且其查询生成器也无法将查询识别为有效语法(声明||和这样是错误的),因此我们也无法对其进行参数化。

我们花了几个小时寻找有类似问题的人,但可悲的是找不到任何能够重现我们问题的人。

感谢您的提前答复!

2 个答案:

答案 0 :(得分:0)

我们发现了问题:我们没有安装32位驱动程序。这很奇怪,因为我们的SQL Server和Oracle服务器都是64位的,并且SSIS包设置为64位模式。至少,装载机现在可以工作了:)

编辑:32位版本也有一个问题:它没有足够的内存,因为32位版本的上限为2 GB。我们有一个怪异的解决方法:卸载两个ODAC驱动程序,然后安装64位驱动程序,然后安装32位驱动程序,最后再安装64位。由于某种原因,它现在可以在64位模式下工作。真的,真的很奇怪。

答案 1 :(得分:0)

我每次尝试运行 SSIS Oracle 数据源时都遇到一个问题,该数据源挂起的行数几乎完全相同。经过一系列的反复试验,我意识到其中一列是 CLOB。我在上面放了一个 to_char 并且提取运行得很好。我猜测 Oracle 数据提供程序在该数据类型方面存在某种问题,因为它的数据不多,而且查询执行良好。