web-dev-qa-db-ja.com

SSISは検証に失敗し、検証ステータス「VS_ISBROKEN」を返しました

一時テーブルを作成し、一時テーブルを使用して2つのデータフローを処理しようとしています。これはシーケンスコンテナ内にあり、コンテナを実行するだけで完全に実行されますが、パッケージ全体を実行すると、次のエラーが返されます。

情報:V-AccidentCodesBase、SSIS.Pipelineの0x4004300A:検証フェーズが開始されています。

エラー:0xC0202009 at V-AccidentCodesBase、Temp Table [69]に挿入:SSISエラーコードDTS_E_OLEDBERROR。 OLE DBエラーが発生しました。エラーコード:0x80040E14。

OLE DBレコードが利用可能です。ソース: "Microsoft SQL Server Native Client 11.0" Hresult:0x80040E14説明: "ステートメントを準備できませんでした。".

OLE DBレコードが使用可能です。ソース: "Microsoft SQL Server Native Client 11.0" Hresult:0x80040E14説明: "無効なオブジェクト名 '## TmpAccidentCode'。"。

エラー:0xC004706B、V-AccidentCodesBase、SSIS.Pipeline: "Insert into Temp Table"は検証に失敗し、検証ステータス "VS_ISBROKEN"を返しました。

エラー:0xC004700C、V-AccidentCodesBase、SSIS.Pipeline:1つ以上のコンポーネントが検証に失敗しました。

エラー:V-AccidentCodesBaseの0xC0024107:タスクの検証中にエラーが発生しました。

5
epelletier9740

TempDBのオーバーロードである問題を解決することになりました。一度にtempDbへの1つのコマンドにプロセスを遅くすると、すべてがスムーズに実行されました。

0
epelletier9740

DelayValidationプロパティをTrueに設定します。シーケンスコンテナでこれを設定するだけで済む場合もあれば、子オブジェクトでその設定を繰り返す必要がある場合もあります。データフロータスク。

6
Mike Honey

他の人が述べたように、エラーはさまざまな理由で発生する可能性があります。私の場合、SSISのスクリプトセクションでNULLをintに変換しようとしたことに気づきました。何かのようなもの :

ProductsBuffer.ProductId = Int64.Parse(reader["ProductId"].ToString());

修正は簡単でした。変換する前にフィールドをチェックして、nullでないことを確認しました。

 if (reader["ProductId"] != DBNull.Value)
            ProductsBuffer.ProductId = Int64.Parse(reader["ProductId"].ToString());
1
Morteza Madadi

私はVS2017を使用しています。しばらくすると、「保存された」データベースパスワードを忘れてしまうのではないかと思います。何日も問題なく動作した後、突然動作を停止し、VS_ISBROKENエラーが発生したためです。以前にSave Passwordチェックボックスをオンにしたにもかかわらず、データベース接続の1つにパスワードを再入力した後、再び機能し始めました。

0
codeMonkey

同じエラーが発生しました。私の場合、SSISを使用してExcelファイルからいくつかのテーブルにデータをインポートしていました。

2つの異なるファイルを使用しましたが、一方が失敗し、もう一方が機能しました。いくつかのレビューの結果、パッケージ内のExcelシートの名前を参照していることがわかりました。そのため、Excelシートには正確に名前を付ける必要があります(大文字と小文字を区別)SSISパッケージで使用したとおり

0
camila

また、同じエラーメッセージに直面しました。問題は、ETL(サービスアカウント)を実行するユーザーのデータベースに対するアクセス許可でした。パッケージを実行するユーザーに、クエリを実行するための十分な権限があることを確認してください。

0
Mike