我最近建立了一个使用Excel 2007电子表格(.xlsx扩展名)的SSIS包(2008)。电子表格的内容被转储到记录集对象中,然后传递给脚本任务编辑器,该脚本任务编辑器遍历每一行,以适当的方式格式化数据,然后将其写入csv文件。
CSV输出到达与找到Excel文件相同的网络位置。在我的本地开发环境中,一切都正常工作,但是当程序包部署到实时SQL服务器并从那里执行时,我们得到以下错误:
错误:2018-02-16 12:42:41.60代码:0x00000001来源: 将记录集导出为CSV说明: System.Reflection.TargetInvocationException:抛出了异常 通过调用的目标。
---> Microsoft.SqlServer.Dts.Runtime.DtsRuntimeException:" component" Recordset Destination" (338)"写了564行。
---> System.Runtime.InteropServices.COMException(0xC0010014):" component" Recordset Destination" (338)"写了564行。
at Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSVariable100.get_Value()
at Microsoft.SqlServer.Dts.Runtime.Variable.get_Value()
---内部异常堆栈跟踪结束---
at Microsoft.SqlServer.Dts.Runtime.Variable.get_Value()
at ST_5a1e9be825584201adc4e2b6248e429e.vbproj.ScriptMain.Main()
---内部异常堆栈跟踪结束---
at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object []参数,SignatureStruct& sig,MethodAttributes methodAttributes,RuntimeTypeHandle typeOwner)
at System.RuntimeMethodHandle.InvokeMethodFast(Object target,Object [] arguments,Signature sig,MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
在System.Reflection.RuntimeMethodInfo.Invoke(Object obj,BindingFlags) invokeAttr,Binder binder,Object []参数,CultureInfo文化, Boolean skipVisibilityChecks)
在System.Reflection.RuntimeMethodInfo.Invoke(Object obj,BindingFlags) invokeAttr,Binder binder,Object []参数,CultureInfo文化)
at System.RuntimeType.InvokeMember(String name,BindingFlags bindingFlags,Binder binder,Object target,Object [] providedArgs, ParameterModifier []修饰符,CultureInfo文化,String [] namedParams)
at System.Type.InvokeMember(String name,BindingFlags invokeAttr, Binder binder,Object target,Object [] args,CultureInfo culture)
在 Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript()
结束错误DTExec:程序包执行返回DTSER_FAILURE(1) 开始时间:12:42:39完成时间:12:42:41经过:1.64秒
包执行失败。步骤失败了。
最初我们认为问题是因为软件包试图运行64位版本的Excel,但我们已经将其作为原因进行了裁决。
我完全无法理解为什么软件包在我的本地计算机上没有问题,但在远程服务器上失败,特别是因为我使用的代码几乎相同到一个单独的包中的代码,它没有问题。
答案 0 :(得分:0)
我会确保您要转储的CSV具有要写入的程序包的正确权限。您的环境也是最新修补的。
我确实找到了一篇帖子here,其中有人提到你的问题类似。他说他通过删除和重建记录集对象来解决它 - 如果以上情况不起作用,我会尝试下一步。