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] +'"
答案
你的情况是
"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变量表达式 - 转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章