The*_*DBA 3 ssis sql-server-2008-r2
好的...我有一个相对简单的SSIS包(DTSDesigner100,Visual Studio 2008版本9.0.30729.4462 QFE,.NET Framework 3.5 SP1)。包的SSIS控制流最后是一个文件系统任务,它是一个重命名文件操作。
此文件系统任务的属性如下:
没有定义的表达式。如您所见,我将Destination分配为变量User :: OutputFileName。因此,让我们看一下该变量...
。
"\\\\SERVER\\Folder\\" + "MyAwesomeExcelWorkbook_"
+ (DT_WSTR,4)DATEPART("year", GETDATE())+ "-"
+ RIGHT("0" + (DT_WSTR,2)DATEPART("mm", GETDATE()), 2) + "-"
+ RIGHT("0" + (DT_WSTR,2)DATEPART("dd", GETDATE()), 2) + "-"
+ RIGHT("0" + (DT_WSTR,2)DATEPART("hh", GETDATE()), 2) + "-"
+ RIGHT("0" + (DT_WSTR,2)DATEPART("mi", GETDATE()), 2) + "-"
+ RIGHT("0" + (DT_WSTR,2)DATEPART("ss", GETDATE()), 2)
+ ".xlsx"
Run Code Online (Sandbox Code Playgroud)
因此,我可以成功评估此表达式。每次程序包运行(失败)时,其值就是所期望的表达式的值。
当我运行程序包时,会发生以下情况...
。
Error: 0xC001F009 at Package: The type of the value being assigned to variable "User::OutputFileName" differs from the current variable type. Variables may not change type during execution. Variable types are strict, except for variables of type Object.
Task failed: Rename Excel Workbook
Error: 0xC0019001 at Rename Excel Workbook: The wrapper was unable to set the value of the variable specified in the ExecutionValueVariable property.
Warning: 0x80019002 at Package: SSIS Warning Code DTS_W_MAXIMUMERRORCOUNTREACHED. The Execution method succeeded, but the number of errors raised (4) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the errors.
SSIS package "Package.dtsx" finished: Failure.
Run Code Online (Sandbox Code Playgroud)
显然有一些小细节我在这里忘记了。现在,我尝试将整个表达式转换为DT_WSTR,512 -评估结果还不错,但是文件系统任务仍然会失败,并出现相同的错误。
有人可以指出我所忽略的细节吗?提前致谢。
小智 6
我也遇到了同样的错误。我正在使用“执行SQL任务”来运行存储过程,从中使用单行结果集值来设置SSIS包变量。存储过程中的变量声明为“ varchar(max)”,我将它们分配给定义为“字符串”的程序包级变量。
因此,我尝试将存储过程声明更改为varchar(512)和“ VOILA” ...没有更多错误。实际上...它还可以与varchar(8000)和nvarchar(4000)一起使用...但是SSIS不太像varchar(max)。