我有一个从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号码的前导数字吗?