5

私は3年前に亡くなった他の誰かによって構築されたSSISパッケージを持っています。過去1年間に何度も実行しましたが、現在これらのエラーが発生していますが、なぜ発生するのかわかりません。このssisパッケージは、Excelドキュメントから一時テーブルにインポートされます。情報が2回目の実行時に一時テーブルにあると、一時テーブルから取得し、追加の列とともに本番テーブルに挿入します。これらは私が得ているエラーです:

[OLE DB Destination [162]] Error: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has 
occurred. Error code: 0x80004005.
An OLE DB record is available.  Source: "Microsoft SQL Server Native Client 10.0"  Hresult:
0x80004005  Description: "Unspecified error".

[OLE DB Destination [162]] Error: There was an error with input column "UserProfileID" (299) on 
input "OLE DB Destination Input" (175). The column status returned was: "The value violated the 
integrity constraints for the column.".

[OLE DB Destination [162]] Error: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR.  The
"input "OLE DB Destination Input" (175)" failed because error code 0xC020907D occurred, and 
the error row disposition on "input "OLE DB Destination Input" (175)" specifies failure on 
error. An error occurred on the specified object of the specified component.  There may be 
error messages posted before this with more information about the failure.

[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PROCESSINPUTFAILED.  The ProcessInput method on 
component "OLE DB Destination" (162) failed with error code 0xC0209029 while processing input 
"OLE DB Destination Input" (175). The identified component returned an error from the 
ProcessInput method. The error is specific to the component, but the error is fatal and will
cause the Data Flow task to stop running.  There may be error messages posted before this with 
more information about the failure.

「入力列'UserProfileID'のエラー」を見たとき、一時テーブルでそれを調べましたが、nullです。これは、パッケージが実行されたときに検出されるはずの列の1つです。しかし、その情報が2回目の実行で見つかったのか、それとも最初に入力することになっているのかはわかりません。ですから、それが私が抱えている問題なのかどうかはわかりません。

私は私が得ることができるどんな助けにも感謝します。追加情報が必要な場合は、それを試して提供することができます。助けてくれる人に感謝します。

Excelファイルから一時テーブルへのインポート Tempテーブルからrealテーブルへのインポート データフロー

4

2 に答える 2

5

最近、テーブルの構造が変更されましたか?フィールドに以前は制約がなく、現在は制約がある場合は、SSISパッケージの問題に対処して、制約を満たさないレコードを例外テーブルに移動するか、制約があった理由を確認する必要があります。インポートするデータのタイプに適さない場合に追加されます。

次に見る場所はExcelファイルです。パッケージがしばらくの間ファイルを実行していて、突然問題が発生し、データが挿入されているテーブルの構造に変更がない場合は、ファイル内のデータが間違っている可能性があります。

于 2012-11-20T16:29:18.440 に答える
3

メッセージの重要な部分は次のとおりです。

"The value violated the integrity constraints for the column."

宛先はそのフィールドでnull値を許可していますか?行を手動で挿入できますか?そのフィールドにnull値が含まれる行を削除すると、正常に実行されますか?

re:あなたのコメント 私が保証したファイルには間違いがあり ませんフィールドのnull値のためにインポートされない行を特定できる場合は、そのセットを返送して、行が有効かどうかを男に尋ねることができますか?彼らは輸入を破っていますか?

OK、あなたの追加情報から、問題はnullを許可しないuserProfileIDフィールドのnull値であることがわかります。問題は、userProfileID値を正しく決定するためにどのプロセスが想定されているかということです。updateIDsステップですか?Excel入力ファイルから直接コピーされていますか?

于 2012-11-20T15:41:21.470 に答える