0

ソーステーブルにデータ型decimal(10,2)のフィールドがあります。ソースフィールドは、SSISパッケージの1つにある単純なデータポンプで使用され、正確なデータ型のフィールドに別のテーブルにデータを挿入します。最近、ソーステーブルと宛先テーブルの両方で精度が18に変更され、データ型がDecimal(18、2)になりました。

パッケージがサーバーで失敗し始め、次のエラーが発生しました。

説明:出力「OLEDBソース出力」(11)の出力列「RunningTotal」(20)でエラーが発生しました。返された列のステータスは、「データ値が指定されたタイプをオーバーフローしたため、変換に失敗しました。」でした。

DataPumpのOLEDBソースの高度なエディターに移動したとき、出力列がまだ10の古い精度を示していることがわかりました。

これは、データ型全体ではなく精度の変更などの変更が発生した場合は常に、パッケージを手動で更新してサーバーにプッシュする必要があることを意味しますか?または、パッケージがこれらのタイプの変更を自動的に認識する方法はありますか?

皆様のご協力、誠にありがとうございました。

4

1 に答える 1

3

はい。ソースでメタデータが変更されるたびに、メタデータを手動で更新する必要があります。手動更新を回避する唯一の方法は、使用するメタデータを明示的に定義することです。これはconvert、クエリで多くのことを意味します。

たとえば、次のように変更します。

select id
  from mytable

の中へ :

select convert(int, id) as id
  from mytable

したがって、データ型がintからbigintに変更された場合、メタデータを更新する必要はありません。bigint値がSSISthoのintサイズよりも大きいため、失敗し始める可能性があることに注意してください。

于 2013-02-26T21:20:18.800 に答える