SSIS变量表达式 - 转换为字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSIS变量表达式 - 转换为字符串相关的知识,希望对你有一定的参考价值。

我在SSIS中创建了一个字符串变量,并在Expression builder中创建了如下地址表达式,Evaluate Expression工作正常。但是当运行我的包时,它给我一个错误。我知道这是一个铸造问题。我无法解决这个问题。谁能帮帮我?

"dbo.zkt_attendance_Date ' (DT_STR, 2, 1252) DATEPART(YYYY, GETDATE() ) ',' (DT_STR, 2, 1252) DATEPART(MM, GETDATE() )','+ (DT_STR, 2, 1252) @[User::Dates] +'"

Expression Builder

Vaiable

答案

你的情况是

"dbo.zkt_attendance_Date ' (DT_STR, 2, 1252) DATEPART(YYYY, GETDATE() ) ',' (DT_STR, 2, 1252) DATEPART(MM, GETDATE() )','+ (DT_STR, 2, 1252) @[User::Dates] +'"

这从字面上看,可以评价为

"dbo.zkt_attendance_Date ' (DT_STR, 2, 1252) DATEPART(YYYY, GETDATE() ) ',' (DT_STR, 2, 1252) DATEPART(MM, GETDATE() )','+ (DT_STR, 2, 1252) @[User::Dates] +'"

在表达式语言中,双引号是字符串文字的结尾。相反,你希望将双引号中的内容与连词混合和匹配。+ 操作符。

类似于这样(为了便于阅读,增加了返回值)。

"dbo.zkt_attendance_Date '" 
+ (DT_STR, 4, 1252) DATEPART("YYYY", GETDATE() ) 
+ "','"
+ (DT_STR, 2, 1252) DATEPART("MM", GETDATE() )
+ "', '"
+ (DT_STR, 2, 1252) @[User::Dates] 
+ "'"

还有: (DT_STR, 2, 1252) DATEPART("YYYY", GETDATE() ) 将会失败,因为你有字符串截断的问题

假设我在@[User::Dates]变量里有03,则评估值为

dbo.zkt_attendance_Date '2020','5', '03'

以上是关于SSIS变量表达式 - 转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章

无法在 SSIS 表达式生成器中转换日期

ssis 中的表达式不支持对象变量的数据类型

将oracle日期分配给SSIS变量

如何在ssis中将空白转换为null

如何在ssis表达式语言中进行格式表达

008_SSIS 变量赋值的几种方式