0

SSIS について簡単な質問があります。Excel ソースから OLE DB 接続へのデータ フロー タスクを実行するパッケージを開発しています。データベースの列は、NULL を許可する必要があります。ただし、Excel スプレッドシートの数値列に不正なデータを入力しても、データ フロー タスクが失敗する原因にはならないという問題があります。派生列ステップで数値列を明示的に変換しようとすることでこれを修正しようとしましたが、同じことが起こります.Excelの数値列にabcを入力すると、パッケージの実行後にdbでNULLと判明した場合. NULLS を許可したいのですが、データが破損している場合はパッケージが失敗するようにしたいと考えています。

アドバイスをいただければ幸いです:)

4

2 に答える 2

1

インポートを定義する SSIS タスクを編集すると、各列のエラー処理を選択できます。そこで、失敗して停止するように設定したり、無視して続行したりするように設定することができます。

このリンクは、必要に応じて処理するのに役立ちます。

http://sqlblog.com/blogs/rushabh_mehta/archive/2008/04/24/gracefully-handing-task-error-in-ssis-package.aspx

http://sqlserver360.blogspot.de/2011/03/error-handling-in-ssis.html

http://msdn.microsoft.com/en-us/library/ms141679.aspx

于 2013-01-14T19:41:31.230 に答える
1

これを試したところ、無視/リダイレクト/失敗の設定は何の効果もないように見えます.NULLは関係なくデータベースに更新されます.

NULL を使用したくない場合は、目的のテーブルの定義を修正して、NOT NULL数値にしたい列に制約を指定することをお勧めします。そうすれば、データベースの更新とパッケージは失敗します。

ただし、null 列が必要なため、データを受け入れる前に、スクリプト タスクまたはスクリプト コンポーネントを作成して、データを読み取って検証することをお勧めします。

または、すべての列があるステージング領域に Excel ファイルを読み取り、VARCHARSQL 経由で検証します。

于 2013-01-15T09:53:13.870 に答える