问题描述
从Oracle将数据提取到sql DB时,某些软件包遇到一个奇怪的问题:随机获得所有期望的数据集,或者部分获得,或者得到一个空的数据集。我没有收到任何错误或警告。
详细信息:
- 我的来源是Oracle 19C,目标是sql Server 2019。
- 该连接是OLE DB(64位)的Oracle提供程序
- Visual Studio 2019和SSIS 15.0.2000.94
- 在OLE DB源中,我正在使用来自变量的sql命令
- 我正在记录提取和插入的记录,发现问题出在提取上。
我已经尝试过:
我将不胜感激
解决方法
我知道这种方式非常具体,但以防万一它可以帮助某人...
问题的根源取决于我们连接到Oracle的方式。在此新版本(19C)中,必须在查询任何源表以进行提取之前使用调用“ secpac.set_user”。
为此,我们在数据流之前使用了SQL任务。由于在连接管理器中将连接属性“保持相同的连接”设置为false,因此我们不断打开和关闭连接,这使流程失去功能。
解决方案:将“保留相同的连接”属性设置为True。然后,连接仅在第一次需要时打开,并对于包中的所有任务保持打开状态。