gpt4 book ai didi

SSIS 文件系统任务错误 : The type of the value being assigned to variable . .. 与当前变量类型不同

转载 作者:行者123 更新时间:2023-12-01 06:04:49 25 4
gpt4 key购买 nike

好的...我有一个相对简单的 SSIS 包(DTSDesigner100、Visual Studio 2008 版本 9.0.30729.4462 QFE、.NET Framework 3.5 SP1)。在包的 SSIS 控制流的末尾是一个文件系统任务,它是一个重命名文件操作。

此文件系统任务的属性如下:

  • IsDetinationPathVariable:真
  • 目标变量:用户::输出文件名
  • 覆盖目标:真
  • 描述:文件系统任务
  • 操作:重命名文件
  • IsSourcePathVariable:错误
  • SourceConnection:Excel 模板复制目标

没有定义的表达式。如您所见,我将 Destination 分配为变量 User::OutputFileName。那么让我们看看那个变量...

  • 名称:输出文件名
  • 范围:包
  • 数据类型(ValueType):字符串
  • 值:
  • 命名空间:用户
  • EvaluateAsExpression:真
  • 只读:错误
  • 表达式:(见下文)

.

"\\\\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"

所以我可以成功地评估这个表达式。每次包运行(和失败)时,它的 Value 都是评估表达式的值,正如人们所期望的那样。

当我运行包时,会发生以下情况......

  1. 前面的步骤运行成功。
  2. 文件系统任务启动,文件重命名成功。
  3. 但是,由于文件系统任务失败并出现以下错误,包现在失败:

.

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.

显然我在这里忘记了一些小细节。现在,我已经尝试将整个表达式转换为 DT_WSTR,512 - 计算结果很好,但文件系统任务仍然会失败并出现同样的错误。

谁能指出我忽略的细节?提前致谢。

最佳答案

我也遇到了同样的错误。我使用“执行 SQL 任务”来运行存储过程,从中使用单行结果集值来设置 SSIS 包变量。存储过程中的变量被声明为“varchar(max)”,我将它们分配给定义为“字符串”的包级变量。

所以我尝试将存储过程声明更改为 varchar(512) 和“VOILA”...不再出现错误。实际上......它也适用于varchar(8000)和nvarchar(4000)......但SSIS没有像varchar(max)。

关于SSIS 文件系统任务错误 : The type of the value being assigned to variable . .. 与当前变量类型不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10437284/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com