使用ssis中的派生列连接tinyint数据类型列

时间:2014-03-19 14:44:28

标签: sql sql-server tsql

之前我问了一个类似的问题,但这次我遇到了单字节无符号整数的问题

我想要实现的目标是Column 5

Column 1 Column 2 Column 3 Column 4  Column 5
1        2      3                    1|2|3

Columns 1, Column 2, Column 3Column 4数据类型是Tinyint,但对于Column 5我需要它作为字符串,最好是varchar 100。

所以我试过了:

(DT_STR,100,1252)((ISNULL([Column 1]) ? "" : ([Column 1])) + (ISNULL([Column 2]) ? "" : ("|" + [Column 2])) + (ISNULL([Column 3]) ? "" : ("|" + [Column 3])+ (ISNULL([Column 4]) ? "" : ("|" + [Column 4]))) 

但我似乎无法让它发挥作用。

2 个答案:

答案 0 :(得分:0)

在SSIS表达式中,在尝试连接它们之前,必须将所有列强制转换为DT_STR,因为连接TINYINT将导致错误。所以你必须做这样的事情:

(DT_STR,100,1252)((ISNULL([Column 1]) ? "" : (DT_STR,3,1252)[Column 1]) + ...

另外,请密切注意您的括号,因为SSIS表达式错误消息确实无法帮助您确定错误原因。

答案 1 :(得分:0)

尝试使用(DT_WSTR,8) 例如:(DT_WSTR,8)ID