SSIS派生列转换数字(6,0)到ANSI字符串会丢弃前导数字

时间:2011-08-19 15:35:39

标签: ssis data-conversion

我有一个从Oracle数据源读取表的包。表的代理键(标识列)由SSIS分配了数字(6,0)数据类型。

当我将该列放入Derived Column组件并将其转换为(DT_STR,100,1252)以存储在下游的查找表中时,字符串列会产生错误的输出 - 但是以一种非常奇怪的方式。

以下是一些示例输出:

ID  ID_AS_STRING
1   1
2   2
3   3
4   4
5   5
6   6
7   7
8   8
9   9
10   0
11  11
12  12
.
.
20   0
21  21
22  22
.
.
.
30   0
.
.
40   0

基本上,它会丢弃ID的前导数字,如果它可以被10整除(这会变成数百和数千,即740变为40,9920变为920。)

毋庸置疑,这是双重错误,因为它错过了查找的某些ID并创建了其他ID的副本。

如果将初始列数据类型更改为四位整数,则可以正常工作,因此在某种程度上,这个问题仅仅是学术性的。但是,任何人都可以解释SSIS中发生的事情,以降低mod-10号码的前导数字吗?

0 个答案:

没有答案