AppId凭据下的SSIS包执行错误

时间:2017-10-23 19:27:29

标签: sql ssis

我有一个奇怪的问题。我有一个存储过程,开始我的ssis包。它通过我们的调度程序系统启动。这是存储过程的剪辑:

--Kickoff the package/report
IF @ReportType = 'SSIS'                     
Set @Sql = 'Exec dbo.SSIS_ExecPackage @PackageName = ''Package1.dtsx'''
--Set @Sql = 'Exec dbo.SSIS_ExecPackage @PackageName = ''' + @DeliverySsisPackageName + '.dtsx' + ''''      


--Exec the report
Exec sp_executesql @Sql

当我像这样硬编码包名:

Set @Sql = 'Exec dbo.SSIS_ExecPackage @PackageName = ''Package1.dtsx'''

工作正常。但是当我使用变量时,就像这样:

Set @Sql = 'Exec dbo.SSIS_ExecPackage @PackageName = ''' + @DeliverySsisPackageName + '.dtsx' + ''''

失败了。更奇怪的是,当我以自己的凭据运行时,两种方式都有效。

当我查看服务器上的ssis执行时,我看到了尝试。所以知道它正在被执行。 AppId拥有所有适当的权利。这是SSIS服务器上的错误:

  

无法创建名称为“DTS.ConnectionManagerOleDb.5”的类型。在Microsoft.SqlServer.Dts.Runtime.ManagedWrapper.SetManagedObject(String assemblyName,String className)      在Microsoft.SqlServer.Dts.Runtime.Interop.ProjectInterop.AddConnectionManagerFromXml(XmlNode xmlNode,IDTSEvents事件)      在Microsoft.SqlServer.Dts.Runtime.ConnectionManagerItem.LoadInternal(流stream,IDTSEvents事件)      在Microsoft.SqlServer.Dts.Runtime.ConnectionManagerItem.Load(IDTSEvents事件,流媒体流)      在Microsoft.SqlServer.Dts.Runtime.ConnectionManagerItem.Load()      在Microsoft.SqlServer.Dts.Runtime.Project.EnsureConnectionsAreLoaded()      在Microsoft.SqlServer.IntegrationServices.Server.Shared.ServerProject.LoadProject(SqlConnection连接)      在Microsoft.SqlServer.IntegrationServices.Server.Shared.ServerProjectLoader.GetServerProject()      在Microsoft.SqlServer.IntegrationServices.Server.ISServerExec.ProjectOperator.StartPackage()      在Microsoft.SqlServer.IntegrationServices.Server.ISServerExec.ProjectOperator.PerformOperation()

0 个答案:

没有答案