【问题标题】:SSIS - trying to pass formatted date to apply to file nameSSIS - 尝试传递格式化日期以应用于文件名
【发布时间】:2020-02-19 16:37:04
【问题描述】:

我有一个 SSIS 包,其中有一个 SQL 任务,它将当前日期格式化为 DDMMMYY,并将其传递给数据流任务,该任务将日期放入输出文件名中

我一直在努力

错误:分配给变量的值 (Int32) 的类型 “User::DDMMMYY”与当前变量类型(字符串)不同。 变量在执行期间可能不会改变类型。变量类型是 严格,除了 Object 类型的变量。

Int32 来自哪里?

  • ForcedExceutionValueType 是字符串
  • ParameterMappingDataType 是 VARCHAR

在包资源管理器中,变量的ValueTypeString

最初,ForcedExecutionValueType 是 Int32,因为这是另一个 SSIS 包中的内容,目前正在生产中(尽管它运行的服务器比我的 Windows 10 机器旧)

【问题讨论】:

  • 执行 sql 任务中格式化当前日期的代码是什么?我很好奇它返回的是什么数据类型。它可能会将它作为 int 返回,这将是您的问题。

标签: sql-server datetime ssis type-conversion


【解决方案1】:

很可能是两件事之一。

  1. SQL 查询在格式化为 DDMMMYY 时返回一个 int。在查询中将其转换/转换为 Varchar。 SELECT CONVERT(Varchar(8),'20191025')
  2. 将值分配给 SSIS 变量后,在表达式中使用它并尝试将另一个值或变量连接到该变量,即 Int32 类型。因此将其在表达式中转换为字符串或 unicode。 (DT_STR,50,1252)@[User::Variable]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多