У меня есть пакет, который читает таблицу из источника данных Oracle. Суррогатному ключу для таблицы (столбец идентификаторов) был присвоен числовой (6,0) тип данных с помощью служб SSIS.
Когда я беру этот столбец в компонент Производный столбец и приводим его как (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
<b>10 0</b>
11 11
12 12
.
.
<b>20 0</b>
21 21
22 22
.
.
.
<b>30 0</b>
.
.
<b>40 0</b>
По сути, он отбрасывает первую цифру идентификатора, если он делится на 10 (это делится на сотни и тысячи, то есть 740 становится 40, 9920 становится 920).
Излишне говорить, что это вдвойне неправильно, поскольку он пропускает некоторые идентификаторы для поиска и создает дубликаты других.
Если вы измените исходный тип данных столбца на четырехбитное целое число, оно будет работать нормально, так что в некотором смысле этот вопрос носит чисто академический характер. Но кто-нибудь может объяснить, что происходит в SSIS, чтобы убрать эту начальную цифру числа мод-10?