我创建了一个带有 Oracle 数据源和 SQL Server 目标的 SSIS 包。实际上,我想通过 SQL 查询将数据从 Oracle 表导出到 SQL Server 表。在这个级别上一切都很好。
当我使用 visual studio vs2022 64bits 17.6.4 在调试模式下运行 SSIS 包(进行测试)时:
- 有时它可以工作(我可以在 SQL 服务器表中看到数据。)
- 有时在删除 SQL 服务器表中的所有数据后,第二次运行 ssis 包会失败(我这样做是为了检查一切是否正常);它似乎无限运行,这是日志:
SSIS 包“C:\REs\package.dtsx”正在启动。信息:数据流步骤 2 处的 0x4004300A,SSIS.Pipeline:验证阶段正在开始。信息:数据流步骤 2 处的 0x4004300A,SSIS.Pipeline:验证阶段正在开始。信息:数据流步骤 2 处的 0x40043006,SSIS.Pipeline:准备执行阶段正在开始。信息:数据流步骤 2 处的 0x40043007,SSIS.Pipeline:预执行阶段正在开始。信息:数据流步骤 2 处的 0x4004300C,SSIS.Pipeline:执行阶段正在开始。SSIS 包“C:\REs\package.dtsx”已完成:已取消。
这里是图片: https://ibb.co/f1crvpQ
我不理解这种行为。我不明白为什么有时执行成功,有时却失败。
随后,我将 SSIS 包部署到 SQL Server 以进行计划自动执行。但是当开始执行时,我收到以下消息:
以用户身份执行:NT Service\SQLSERVERAGENT。Microsoft (R) SQL Server 执行包实用程序版本 15.0.2000.5(适用于 64 位)版权所有 (C) 2019 Microsoft。保留所有权利。开始时间:16:56:00 IS Server 上的包执行失败。执行 ID:20,执行状态:6。要查看执行的详细信息,请右键单击 Integration Services 目录,然后打开 [所有执行] 报告
开始时间:16:56:00 完成时间:16:56:05 耗时:4,734 秒。
包执行失败。步骤失败。
在集成服务目录报告中,除了意外终止之外,我没有看到任何令人震惊的错误消息。
该怎么办?
感谢您的支持
我的环境:
- Windows Server 2019 版本 1809
- SQL Server 2019 64 位
- vs2022 社区 64 位 17.6.4
答案1
您是否在使用旧的 Attunity Oracle Connector?该连接器在 SQL Server 2019 中已弃用,并由 Microsoft Connector for Oracle 取代。您可以从这里。您可能会对新的连接器有不同的体验。
答案2
谢谢大家的支持。
我能够解决所有的问题。
以下是执行的操作:
- 使用的更新工具:sql server 2019 CU23、Microsoft Visual Studio Community 2022 版本 17.8.1、SQL Server Data Tools 17.8.119.0、SQL Server Integration Services 16.0.5131.0、windows server 2019 64 位版本 1809
- 安装 Microsoft Connector for Oracle (https://www.microsoft.com/en-us/download/details.aspx?id=104113)
- sql server 配置管理器 > sql server 服务 > sql server 和 sql server 代理通过本地管理员连接
- 创建 ssis 包:使用的源(MS oracle 源)和使用的目标(sql server 的目标)
- 我的 ssis 包的属性:creatorname(本地管理员)、potectionlevel(用户密钥)、targetserverversion(sql server 2022,但如果我更改为 sql server 2019,则会出现错误)、run64bitruntime(true)
所以我的工作执行得很正常。
但是我想知道为什么当我将 targetserverversion 属性更改为 sql server 2019 但我使用 sql server 2019 时我的包无法正常执行?
当我将 targetserverversion 属性切换为 sql server 2022 时,其余一切都正常;我的 ssis 包和我的工作运行正常,感谢大家的支持。