0

DSNベースの接続を使用してリモートMASデータベースサーバーからデータをロードするために使用されるSSISdtsxパッケージがあります。多くのテーブルからSQL-Serverのレプリカテーブルにデータをロードします。MASのテーブルにいくつかの変更を加えるまで、すべてが正常に機能していました。dtsxは、次のエラーで失敗しています。

エラー:0xC02090F8、データフロータスク、データのインポート、DataReaderソース[28866]:値が大きすぎて、出力列 「UDF_TREAD_DEPTH」(29160)に収まりませんでした。

実際には、10進数のフィールドである単一のテーブルフィールド「UDF_TREAD_DEPTH」に関連している可能性があると思います。このフィールドは、DataReaderソースに次のように表示されます"numeric [DT_NUMERIC]" with Length:0, Precision:4 & Scale:2. 。以前は、xx.xx形式の単純なデータがありました。そして今、問題の後にxx.xx、xxx、..のようなデータがあることがわかりましたが、データリーダーソースを更新した後もデータ型は変更されませんでした。

この説明に基づいたデータについては、「精度を5に更新する必要があります」と思います。

添付の画面(データソース出力column.png)に表示されているデータ型を変更できません。このdtsxパッケージをデバッグすると、データリーダーソースのロード中にエラーが発生します。私がそれを正しく釘付けにしている場合-どうすればそれを修正できますか?他に可能性がある場合は、お知らせください。

ここに画像の説明を入力してください

4

2 に答える 2

1

高度なエディターでソースを編集しようとしましたか? (右クリックして [高度なエディターを表示...] を選択します) [入力および出力パラメーター] セクション (通常は最後のタブ) に移動し、[出力列] セクションに移動します (OLE DB の場合は、[OLE DB ソース] の横にある [+] をクリックします)。 [出力]、[出力列] の横にあるプラス記号の順にクリックし、変更する列名を強調表示します)、問題の列のプロパティを変更します ([データ型のプロパティ] を探し、必要に応じて [精度] と [スケール] を変更します)。それができない場合は、ソースを削除して、同じデータへの新しいソースに置き換えることができます (つまり、このオブジェクトを再作成すると、列プロパティの接続が再クエリされます)。

于 2012-07-10T20:01:22.900 に答える
0

xxx.xx マスクで更新するデータを取得したので、100 が 100.00 になりました。これは、SSIS の DataReader が型を正しく推測するのに役立ちました。

それに加えて、キャスト/変換機能のサポートを必要としない別の簡単な方法も見つけました-

UDF_TREAD_DEPTH * 1.00 as UDF_TREAD_DEPTH

これにより、DataReader は型 (つまり、精度と位取り) を正しく推測することもできました。

于 2012-08-30T13:02:01.943 に答える