SSIS OLE DB 源从 Oracle 数据源中随机丢失行
SSIS OLE DB Source is missing rows randomly from an Oracle data source
我在将数据从 Oracle 提取到 SQL 数据库时遇到了一些包的奇怪问题:我随机获得了所有预期的数据集,或者我部分获得了它,或者我得到了一个空数据集。我没有收到任何错误或警告。
详情:
- 我的源是 Oracle 19C,目标是 SQL Server 2019。
- 该连接是一个 Oracle Provider for OLE DB(64 位)
- Visual Studio 2019 & SSIS 15.0.2000.94
- 在 OLE DB 源代码中,我使用来自变量的 SQL 命令
- 我正在记录提取和插入的记录,我发现问题出在提取中。
我已经试过了:
- 在快速加载//正常加载之间切换
- 在连接字符串中添加 属性 UseSessionFormat=True;
如果有任何线索或帮助,我将不胜感激
我知道这个诡辩非常具体,但以防万一它可以帮助某人...
问题的根源在于我们连接到 Oracle 的方式。在此新版本 (19C) 中,必须在查询任何源 table 之前使用调用 'secpac.set_user' 以继续提取。
为此,我们在数据流之前使用了 SQL 任务。由于连接管理器中的连接 属性“保留相同连接”设置为 false ,我们不断打开和关闭连接,这在流程中造成了故障。
解决方案:将“保留相同连接”属性设置为 True。然后仅在第一次需要时打开连接,并为包中的所有任务保持打开状态。
我在将数据从 Oracle 提取到 SQL 数据库时遇到了一些包的奇怪问题:我随机获得了所有预期的数据集,或者我部分获得了它,或者我得到了一个空数据集。我没有收到任何错误或警告。
详情:
- 我的源是 Oracle 19C,目标是 SQL Server 2019。
- 该连接是一个 Oracle Provider for OLE DB(64 位)
- Visual Studio 2019 & SSIS 15.0.2000.94
- 在 OLE DB 源代码中,我使用来自变量的 SQL 命令
- 我正在记录提取和插入的记录,我发现问题出在提取中。
我已经试过了:
- 在快速加载//正常加载之间切换
- 在连接字符串中添加 属性 UseSessionFormat=True;
如果有任何线索或帮助,我将不胜感激
我知道这个诡辩非常具体,但以防万一它可以帮助某人...
问题的根源在于我们连接到 Oracle 的方式。在此新版本 (19C) 中,必须在查询任何源 table 之前使用调用 'secpac.set_user' 以继续提取。
为此,我们在数据流之前使用了 SQL 任务。由于连接管理器中的连接 属性“保留相同连接”设置为 false ,我们不断打开和关闭连接,这在流程中造成了故障。
解决方案:将“保留相同连接”属性设置为 True。然后仅在第一次需要时打开连接,并为包中的所有任务保持打开状态。