我正在使用的BIDS 2008 SSIS包在到达包中的任何数据流任务时未通过验证。我可以在我的计算机上本地运行BIDS 2008中的SSIS包。当我通过SQL代理作业运行SSIS包时,包失败并显示以下错误消息。我通过谷歌搜索研究了错误代码0x80004005和错误代码0xC004706B,但没有找到任何有用的东西。
有问题的SSIS包是在同一SQL代理作业中一起运行的多个SSIS包之一。原始SQL代理作业中的其他SSIS包都能够成功运行。这使我相信SQL代理服务帐户和代理帐户配置了适当的权限。 DBA能够确认服务帐户和代理帐户确实具有适当的权限。
SQL代理作业使用操作系统(CmdExec)类型运行SSIS包,SSIS包的Run64BitRuntime设置为FALSE,因此SSIS包在32位运行时下运行。
出于调试目的,我在原始SSIS包中的新SSIS包中重新创建了数据流任务,数据库连接以及相关的源和目标任务。调试SSIS包能够在我的计算机上本地运行,但是当我尝试使用与原始SQL代理作业完全相同的新SQL代理作业设置运行时失败。
我还使用了不同的数据库连接,例如Native OLE DB \ SQL Server Native Client 10.0,10.1,11.1和用于SQL Server的Native OLE DB \ Microsoft OLE DB Provider。当我测试调试SSIS包时,所有这些都失败了
我已经验证了OLE DB源和目标的元数据与SQL Server数据库表中的数据类型和长度相匹配。我已经验证,在SQL Server Management Studio和服务帐户上运行时,数据流任务中的OLE DB源任务使用的存储过程有权运行存储过程。
我认为,从解决此问题的工作中我可以回想起这些信息。
之前是否还有其他人遇到此错误?任何可能的尝试解决方案?
欢迎任何帮助!
错误讯息:
以用户身份执行:domain \ SQLAgentServiceAccount。适用于64位的Microsoft(R)SQL Server执行包实用程序版本10.50.2500.0 版权所有(C)Microsoft Corporation 2010.保留所有权利。
开始时间:下午1:37:09
错误:2014-08-14 13:37:09.94代码:0xC0202009来源:数据流任务 - OLEDB源[1]
描述:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。 OLE DB记录可用。来源:“用于SQL Server的Microsoft OLE DB提供程序”Hresult:0x80004005
描述:“语法错误或访问冲突” 结束错误错误:2014-08-14 13:37:09.94代码:0xC004706B来源:数据流任务SSIS.Pipeline
说明:“组件”OLEDB源“(1)”验证失败并返回验证状态“VS_ISBROKEN”。
结束错误错误:2014-08-14 13:37:09.94代码:0xC004700C来源:数据流任务SSIS.Pipeline
说明:一个或多个组件验证失败 结束错误错误:2014-08-14 13:37:09.94代码:0xC0024107来源:数据流任务
说明:任务验证期间出现错误 结束错误DTExec:包执行返回DTSER_FAILURE(1)。
开始时间:下午1:37:09完成时间:下午1:37:09经过:0.219秒。处理退出代码1.
步骤失败。
答案 0 :(得分:1)
我找到了这个解决方案:
确保连接管理器中的连接字符串具有 "Provider=SQLNCLI11.1; Persist Security Info=True; Auto Translate=False;"
我做到了,它在超大规模/SQL Server 上对我有用。
答案 1 :(得分:0)
这是我前一段时间遇到的一种奇怪错误,我使用以下方法来解决问题:
以管理员身份运行命令提示符 键入以下命令并按Enter键: regsvr32 jscript.dll 键入以下命令并按Enter键: regsvr32 vbscript.dll
答案 2 :(得分:0)
问题的解决方案是运行SQL代理作业的服务帐户对通过数据流任务执行的存储过程没有执行权限。授予服务帐户执行权限,SSIS包能够成功执行。