1

Oracle データ ソースからテーブルを読み取るパッケージがあります。テーブル (ID 列) の代理キーには、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 になります)。

言うまでもなく、これは 2 重に間違っています。ルックアップで一部の ID が欠落し、他の ID の重複が作成されるからです。

最初の列のデータ型を 4 ビット整数に変更すると問題なく動作するため、ある意味でこの質問は学術的なものにすぎません。しかし、SSIS で mod-10 番号の先頭の桁を削除するために何が行われているのか、誰か説明できますか?

4

0 に答える 0