我有一个从 Oracle 数据源读取表的包。SSIS 为表(标识列)的代理键分配了数字(6,0)数据类型。
当我将该列放入派生列组件并将其转换为 (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 整除,它会丢弃 ID 的前一位数字(这会持续到成百上千,即 740 变为 40,9920 变为 920。)
不用说,这是双重错误,因为它错过了一些用于查找的 ID 并创建了其他 ID 的重复项。
如果您将初始列数据类型更改为四位整数,它可以正常工作,所以在某种程度上这个问题只是学术性的。但是任何人都可以解释 SSIS 中发生了什么以删除 mod-10 数字的前导数字吗?