SSIS OLE DB源从Oracle数据源中随机丢失行

问题描述

从Oracle将数据提取sql DB时,某些软件包遇到一个奇怪的问题:随机获得所有期望的数据集,或者部分获得,或者得到一个空的数据集。我没有收到任何错误或警告。

详细信息:

  • 我的来源是Oracle 19C,目标是sql Server 2019。
  • 该连接是OLE DB(64位)的Oracle提供程序
  • Visual Studio 2019和SSIS 15.0.2000.94
  • 在OLE DB源中,我正在使用来自变量的sql命令
  • 我正在记录提取和插入的记录,发现问题出在提取上。

我已经尝试过:

  • 快速加载//正常加载之间切换
  • 在连接字符串中添加属性 UseSessionFormat = True;

我将不胜感激

解决方法

我知道这种方式非常具体,但以防万一它可以帮助某人...

问题的根源取决于我们连接到Oracle的方式。在此新版本(19C)中,必须在查询任何源表以进行提取之前使用调用“ secpac.set_user”。

为此,我们在数据流之前使用了SQL任务。由于在连接管理器中将连接属性“保持相同的连接”设置为false,因此我们不断打开和关闭连接,这使流程失去功能。

解决方案:将“保留相同的连接”属性设置为True。然后,连接仅在第一次需要时打开,并对于包中的所有任务保持打开状态。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...