パッケージを実行しようとすると、次のエラーが発生します。私はssisが初めてです。助言がありますか。タンクス
===================================
パッケージ検証エラー(パッケージ検証エラー)
===================================
データフロータスク[SSIS.Pipeline]でのエラー:「OLE DBソース」は検証に失敗し、検証ステータス「VS_NEEDSNEWMETADATA」を返しました。
データフロータスクでのエラー[SSIS.Pipeline]:1つ以上のコンポーネントが検証に失敗しました。
データフロータスクでのエラー:タスクの検証中にエラーが発生しました。
(Microsoft.DataTransformationServices.VsIntegration)
プログラムの場所:
microsoft.DataTransformationServices.Project.DataTransformationsPackageDebugger.ValidateAndRunDebugger(Int32 flags、IOutputWindow outputWindow、DataTransformationsProjectConfigurationOptions options)at Microsoft.DataTransformationServices.Project.DataTransformationsProjectDebugger.LaunchDtsPackage(Int32 launchOptions、ProjectItem startupProjItem、DataTransformationsProjectConfigurationProjectageOptionTransformServiceProjectProjectTransformDataProjectProjectTransformOptionProjectsTransformationProjectConfigurationOptions) (Int32 launchOptions)at Microsoft.DataTransformationServices.Project.DataTransformationsProjectDebugger.LaunchDtsPackage(Int32 launchOptions、DataTransformationsProjectConfigurationOptions options)at Microsoft.DataTransformationServices.Project.DataTransformationsProjectDebugger.Launch(Int32 launchOptions、DataTransformationsProjectConfigurationOptions options)
VS_NEEDSNEWMETADATAは、いずれかのタスクの背後にある基礎となるデータが変更されると表示されます。最も速い解決策はおそらく、エラーをスローしている各要素を削除して再作成することです。
検証チェックを無効にするのはどうですか?
ソースコンポーネントまたは宛先コンポーネントを右クリックしてプロパティを選択した場合と同様に、validateExternalMetadataという名前のプロパティにfalseを設定して試してみます。
このソリューションは私のために働いています。
これは通常、ストレスではなくスキーマに変更があった場合に発生します。入力と出力をダブルクリックするだけで解決します。
接続が有効であることを確認してください。動的接続を使用している場合は、パッケージまたはデータフローでオプション「遅延検証」= trueを設定してみてください。
私の場合、宛先テーブルの構造がOLEDBコンポーネントのメタデータと一致しませんでした。追加するのを忘れていた不足している列を追加しましたが、その後修正されました。
少し調べた後(自分の結論を抽出するためにチェックしてください: this および this one )、私はニース回避策を見つけたと思いますメタデータの問題がOle DB
オブジェクトに起因する場合、ただしは非常に特定の場合のみ。
重要なのは、列を変更するときnames/列を削除する/列を追加するとき、メタデータを更新する以外に何もできないということです。
ただし、SQL query
を使用してオブジェクトからデータを取得する場合、ケース自体では、クエリ自体を更新する必要はありませんクエリで必要なものを要求できる場合は、メタデータを更新する必要はありません。基本的に、クエリがまだ有効な場合。
私は自分のETL内でそれを試し、Excel
ファイルからデータを読み取るOle DB
オブジェクトを変更し、1つのsheet
をターゲットにして、すべての列を選択しましたタブで。
SQL query
のように変更して、次のようにシート全体を取得します。
SELECT * FROM ['Sheet_Name$']
ヘッダーのメタデータが異なるファイルを導入する場合でも、私は完全に解決しました。