2010-12-15 22 views
0

修正方法がわからないSSISパッケージでエラーが発生しました。SSISエラー(ルックアップとOLE DBコマンド)の問題

私はOLE DBソースデータベース(SRC DB)を使用しており、これからの入力は検索(DEST)に出力されます。 DB)。 SRC DBのフィールドがDEST DBに存在するかどうかを確認しています。私の場合、私がチェックしているフィールドはinkexIDと呼ばれ、INT NOT NULLであり、複合フィールドのIDと一緒になっています。

検索は、SRC DBに存在するinkexIDがDEST DBに存在するかどうかを調べています。それが存在しなければ、DEST DBに3つの他のフィールドを挿入します。存在する場合は、DEST DBの1つのフィールドを更新します。

私の問題はここにある:それは、ルックアップになると 、それは2つのテーブルの上にinkexIDをチェックし、一致しないというのを見、が、コンポーネントは、その後を失敗しました。エラー出力を送信していないようです(これは、最初のOLE DBコマンドの挿入に必要なものです)。エラーの設定を行のリダイレクトまたはエラーの無視に設定した場合、は、の挿入に失敗します。私が挿入しようとしているフィールドが12345であっても、私のデータベーススキーマに違反するエラーが出る。

フィールドを主キーとして削除し、nullを許可するように設定したので、 SRC DBの値が12345

であっても、それがフィールドにNULLを挿入しようとしている見て驚いルックアップから何も出力があるようです。誰も助けて、何もルックアップから出てこないのか?感謝

、 Cian

答えて

0

は、サーバー上でトレースを実行するために、SQL Serverプロファイラを使用してください。

トレースを開始してパッケージを実行します。プロファイラトレースは、データベースサーバーに送信されているすべての実際のT-SQLコマンドを取得します。次に、各コマンドをクエリエディタウィンドウにコピーして実行し、結果セットを表示し、チューニングの実行計画を確認することもできます。

0

私はエラーが何であったかを見出した:私はDEST DBからinkexIDを検索するSRC DBのinkexIDフィールドを設定していた

。私は間違ってそれを設定して、SRC DBの列をDEST DBのinkexIDを置き換えるように設定しました。私は単にそれをuntickedと単純に関係を設定します。

RESULT !!!これでinkexIDがチェックされ、DEST DB内に存在する場合はlastUpdated時刻を現在の時刻で更新します。それ以外の場合は正しいinkexID、現在時刻をdateAdded、dateUpdated、statusIDをアクティブとして挿入します。

Yay!