0

だから私はSSISで一括挿入を試みており、継続的に取得しています:

"Microsoft SQL Native Client" Hresult: 0x80004005 説明: "文字列またはバイナリ データが切り捨てられます。"

行が挿入されるテーブルとまったく同じタイプへのすべての列のデータ変換が既にありますが。ビューを使用しましたが、データは DB 挿入ステップの直前に想定されているように見えます。それでもエラーが発生します。

次に、SQL Server Management Studio に入り、そのいまいましいテーブルに挿入クエリをセットアップしましたが、それでも同じ切り捨てエラーが発生します。次に、ANSI_WARNINGS OFF を設定すると、挿入作業データがテーブルで適切に表示されます。この行を削除しようとすると、切り捨てエラーが発生します。

状況への基本的な入力に加えて、私の質問は、SSIS 内で ANSI_WARNINGS をオフにして、バルク ロードを実行できるようにするにはどうすればよいかということです。

4

4 に答える 4

2

送信するデータを受け入れるには狭すぎる列があるようです。

これが当てはまるかどうかを確認できますか?

サードパーティとスキーマを特定しているときに、非常によく似た問題が頻繁に発生しました。

ビュー内のすべての列のLENを選択できますか?それは問題を見つけるのに役立つかもしれません。

それ以外に、私が見つけた唯一の方法は、ソースデータ列の実際の長さのレポートを印刷することです。

于 2009-04-02T15:19:46.363 に答える
2

データ値がテーブルの列の長さを超える行が1つあるように聞こえます(おそらくそれ以上ですが、必要なのは1つだけです!)。短いタイプへのデータ変換を行うと、宛先からの変換を行う変換にエラーが移動します。私がお勧めするのは、フラットファイルの宛先を作成し、変換のエラー出力をそれに結び付けることです。エラー結果を「行のリダイレクト」に変更します。これにより、すべての有効な行を通過できるようになり、手動で処理できるように切り捨てられている行のコピーが提供されます。

于 2009-04-02T15:21:01.993 に答える
1

挿入しているテーブルにトリガーはありますか?その場合、エラーはトリガーが実行するアクションに起因する可能性があります。

于 2009-04-02T15:16:09.703 に答える
0

SSIS では、「Data Access Mode > Table or view: Fast Mode」で OLE DB Destination を設定できることがわかりました。この設定を選択すると、一括挿入は警告やエラーなしで完了し、データはデータベースで完璧に見えます. この変更が正確に何をしたかはわかりませんが、うまくいき、1回のSSIS挿入で16時間後に結果に満足しています.

提案をありがとう。

于 2009-04-02T16:25:19.030 に答える