我遇到了一个问题,我最近创建的SSIS工作遇到了一个奇怪的错误。
背景资讯
这是一个SSIS包(.dtsx),正如您期望的那样,使用SQL Server Integration Services类型与SQL作业(SQL Server 2008,使用SSMS创建的作业)一起运行。这项工作在我们的开发环境中运行良好,但在我们的测试环境中却没有。该程序包使用配置文件(.dtsConfig)来维护不同环境的连接字符串。包实际上做的很简单;它会截断一些临时表,然后使用序列容器中的8个数据流任务填充从Oracle数据库中提取的数据,每个任务分解为源(Oracle) - >数据转换(用于unicode字符串) - >目标(SQL Server)。由于需要进行Oracle连接,程序包包含该连接的用户/传递,因此具有保护级别“EncryptSensitiveWithPassword”来维护该连接。正在运行此作业的服务器正在运行Windows Server 2008 R2 SP1。我相信这就是背景信息,但如果我错过任何一个让我知道。
实际错误
这是破碎工作的工作历史中唯一有用的信息:
该步骤未生成任何输出。返回值未知。 进程退出代码为255.步骤失败。
如您所见,不是很有帮助。真正的问题是,当我在服务器上使用DTEXEC手动运行此作业时,它运行正常。这让我相信它可能是sqlagentadmin或其他什么的权限问题,但我看到的一切似乎都很好。我检查了使用procexplorer发生了什么,它正在运行正确的DTEXEC命令。应用程序事件查看器确实弹出了这个(所以可能是它的oracle驱动程序问题):
Faulting application name: DTExec.exe, version: 2007.100.5500.0, time stamp: 0x4e7b1ed6
Faulting module name: OraClient11.Dll, version: 11.2.0.1, time stamp: 0x4bb1dcae
Exception code: 0xc0000005
Fault offset: 0x0000000000057106
Faulting process id: 0x2d94
Faulting application start time: 0x01cd66b0d360164d
Faulting application path: C:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe
Faulting module path: c:\app\product\11.2.0\client_1\bin\OraClient11.Dll
Report Id: 118a2173-d2a4-11e1-b1ec-001517955142
我在互联网上看了几个小时,我尝试了一些东西。我在所有数据流任务上将Delay Validation属性更改为“True”。我已经尝试使用集成的SSIS GUI设置作业,并且使用操作系统选项来运行dtexec,两者都失败了。
有什么建议吗?对不起文字的墙,但我只是想确保我涵盖了所有内容。
谢谢!
答案 0 :(得分:1)
我收到以下错误:'该步骤未生成任何输出。返回值未知。进程退出代码为255.步骤失败。 ' 为了解决我的问题,我检查了读取源数据的权限。我没有合适的权限。获得了正确的权限并重新启动我的工作解决了问题。我可以建议SSIS作为执行任务和我的DB2数据源提供程序之间的API应该为更好的信息分配错误: - ) 通过阅读专有的源数据解决了问题。
答案 1 :(得分:0)
您的服务器是64位服务器吗?那个Oracle服务器怎么样?使用SSIS连接到Oracle服务器时,我们遇到了类似的问题。我们必须在64位服务器上安装64位和32位客户端工具。
此外,您可能必须在SQL代理作业中设置一个标志,告诉它不要使用64位。查看Step的属性。转到“配置”选项卡,然后单击“高级”选项卡(在SQL 2008中可能略有不同)并选中“32位运行时”,然后再次尝试。这可能是它在调试时起作用但不起作用的原因。