我编写了一个SSIS脚本任务,我使用C#代码使用ODBC从数据库中读取数据,然后使用Microsoft.Office.Interop.Excel对象动态创建Excel电子表格。然后代码将电子表格保存到目录文件夹。
当我在SQL Server Business Development Studio中执行该程序包时,它运行正常,并且程序包将电子表格写入文件夹没有任何问题,但是当我运行T_SQL代码时,它会使脚本任务失败。请参阅以下脚本任务代码: -
直接从BI工具执行时,它工作正常, 但是当我通过T_SQL代码执行时失败 -
@Cmd VARCHAR(4000),
@ReturnCode INT,
@Msg VARCHAR(1000)
SELECT @Cmd = 'DTEXEC /FILE "' + @Path + 'Package.dtsx" /MAXCONCURRENT 1 /CHECKPOINTING OFF /REPORTING EW'
EXEC @ReturnCode = xp_cmdshell @Cmd
错误: -
Microsoft(R)SQL Server执行包实用程序 64位版本12.0.5000.0 版权所有(C)Microsoft Corporation。版权所有。 空值 开始于:12:05:47 PM 错误:2016-09-08 12:05:49.42 代码:0x00000001 来源:脚本任务 描述:调用目标抛出了异常。 结束错误 警告:2016-09-08 12:05:49.42 代码:0x80019002 来源:包装 描述:SSIS警告代码DTS_W_MAXIMUMERRORCOUNTREACHED。执行方法成功,但引发的错误数量(1) 达到允许的最大值(1);导致失败。这发生了 当错误数量达到指定数量时 d在MaximumErrorCount中。更改MaximumErrorCount或修复错误。 结束警告 DTExec:包执行返回DTSER_FAILURE(1)。 开始于:12:05:47 PM 完成时间:下午12:05:49 经过:1.828秒 NULL
答案 0 :(得分:0)
这是与this类似的问题,其中@ Nick.McDermaid引用了其他similar个问题。
他们都指向答案outlined here
在systemprofile文件夹中似乎需要一个Desktop文件夹来打开Excel的>文件。
此解决方案是......
·Windows 2008 Server x64
请创建此文件夹。
C:\的Windows \ Syswow64资料\配置\ systemprofile \桌面
·Windows 2008 Server x86
请创建此文件夹。
C:\的Windows \ system32 \设置\ systemprofile \桌面
此操作消除了我系统中的办公自动化问题。