1

これは私が作成した最初の SSIS パッケージであるため、このテーマについての経験不足を許してください。目標は、基本的にスキーマ/データを Access DB から SQL Server にコピーすることです。BIDS のインポート/エクスポート ウィザードを使用して作成します (合計 470 のテーブルがあります)。1 つのテーブルのみを実行するようにスクリプトを作成すると、ジョブが実行されてパッケージが実行され、成功します。すべてのテーブルを試すと、次のエラーが表示されます。

ユーザーとして実行: DOMAIN\USER。Microsoft (R) SQL Server Execute Package Utility バージョン 10.50.2500.0 for 32 ビット Copyright (C) Microsoft Corporation 2010. All rights reserved. 開始: 11:47:53 AM エラー: 2012-07-16 11:48:03.65 コード: 0xC0202009 ソース: データ フロー タスク 1 宛先 - アカウント [55] 説明: SSIS エラー コード DTS_E_OLEDBERROR。OLE DB エラーが発生しました。エラー コード: 0x80040E37。OLE DB レコードが利用可能です。ソース: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80040E37 説明: "無効なオブジェクト名 'dbo.Account'.". 終了エラー エラー: 2012-07-16 11:48:03.65 コード: 0xC0202040 ソース: データ フロー タスク 1 宛先 - アカウント [55] 説明: "[dbo].[アカウント]" の fastload 行セットを開けませんでした。オブジェクトがデータベースに存在することを確認してください。終了エラー エラー: 2012-07-16 11:48:03.65 コード: 0xC004706B ソース: データ フロー タスク 1 SSIS.Pipeline 説明: "コンポーネント "Destination - Account" (55)" は検証に失敗し、検証ステータス "VS_ISBROKEN" を返しました。終了エラー エラー: 2012-07-16 11:48:03.65 コード: 0xC004700C ソース: データ フロー タスク 1 SSIS.Pipeline 説明: 1 つ以上のコンポーネントが検証に失敗しました。終了エラー エラー: 2012-07-16 11:48:03.65 コード: 0xC0024107 ソース: データ フロー タスク 1 説明: タスクの検証中にエラーが発生しました。終了エラー DTExec: パッケージの実行で DTSER_FAILURE (1) が返されました。開始: 午前 11:47:53 終了: 午前 11:48:03 経過: 10.562 秒。パッケージの実行に失敗しました。ステップは失敗しました。パイプラインの説明: "コンポーネント "Destination - Account" (55)" は検証に失敗し、検証ステータス "VS_ISBROKEN" を返しました。終了エラー エラー: 2012-07-16 11:48:03.65 コード: 0xC004700C ソース: データ フロー タスク 1 SSIS.Pipeline 説明: 1 つ以上のコンポーネントが検証に失敗しました。終了エラー エラー: 2012-07-16 11:48:03.65 コード: 0xC0024107 ソース: データ フロー タスク 1 説明: タスクの検証中にエラーが発生しました。終了エラー DTExec: パッケージの実行で DTSER_FAILURE (1) が返されました。開始: 午前 11:47:53 終了: 午前 11:48:03 経過: 10.562 秒。パッケージの実行に失敗しました。ステップは失敗しました。パイプラインの説明: "コンポーネント "Destination - Account" (55)" は検証に失敗し、検証ステータス "VS_ISBROKEN" を返しました。終了エラー エラー: 2012-07-16 11:48:03.65 コード: 0xC004700C ソース: データ フロー タスク 1 SSIS.Pipeline 説明: 1 つ以上のコンポーネントが検証に失敗しました。終了エラー エラー: 2012-07-16 11:48:03.65 コード: 0xC0024107 ソース: データ フロー タスク 1 説明: タスクの検証中にエラーが発生しました。終了エラー DTExec: パッケージの実行で DTSER_FAILURE (1) が返されました。開始: 午前 11:47:53 終了: 午前 11:48:03 経過: 10.562 秒。パッケージの実行に失敗しました。ステップは失敗しました。65 コード: 0xC004700C ソース: データ フロー タスク 1 SSIS.Pipeline 説明: 1 つ以上のコンポーネントが検証に失敗しました。終了エラー エラー: 2012-07-16 11:48:03.65 コード: 0xC0024107 ソース: データ フロー タスク 1 説明: タスクの検証中にエラーが発生しました。終了エラー DTExec: パッケージの実行で DTSER_FAILURE (1) が返されました。開始: 午前 11:47:53 終了: 午前 11:48:03 経過: 10.562 秒。パッケージの実行に失敗しました。ステップは失敗しました。65 コード: 0xC004700C ソース: データ フロー タスク 1 SSIS.Pipeline 説明: 1 つ以上のコンポーネントが検証に失敗しました。終了エラー エラー: 2012-07-16 11:48:03.65 コード: 0xC0024107 ソース: データ フロー タスク 1 説明: タスクの検証中にエラーが発生しました。終了エラー DTExec: パッケージの実行で DTSER_FAILURE (1) が返されました。開始: 午前 11:47:53 終了: 午前 11:48:03 経過: 10.562 秒。パッケージの実行に失敗しました。ステップは失敗しました。03 AM 経過: 10.562 秒。パッケージの実行に失敗しました。ステップは失敗しました。03 AM 経過: 10.562 秒。パッケージの実行に失敗しました。ステップは失敗しました。

ジョブの最初のステップでは、DB からすべてのテーブルを削除します。

EXEC sp_msforeachtable 'DROP TABLE ?'

2 番目のステップでは、パッケージを実行します。

私はオンラインでいろいろ調べましたが、解決策を見つけることができませんでした。どんな助けでも大歓迎です、ありがとう!

4

2 に答える 2

0

2 番目の実行 SQL タスクでは、遅延検証プロパティを true に設定する必要があります。

于 2013-03-13T05:33:27.290 に答える
0

これには何年もかかりました- 数ヶ月以上 - 気が狂いました

1 つのワークブックで 3 つの SQL テーブルのデータを 3 つの Excel シートに実行していました。破損したデータ (シート間でさえも) と OLE エラー、および人々がこれらのスレッドで検索した他の多くの断続的なエラーに関するあらゆる種類の問題がありました。

結局、問題は、1 つのデータ フロー内に 3 つのデータ フローを埋め込んでいたことでし。後から考えると、これが問題になることは明らかだったと思いますが、SSIS に慣れていない私は、処理がより深く解決されるだろうと考えました。違う。

フローを3 つの連続するデータ フローに分割すると、すべて問題ありませんでした。

追記: このプロジェクトの過程で SSIS をいじった後、これはおそらく私が出会った MS 製品の中で最も厄介な部分の 1 つであると確信しました。非常に多くの手動構成と、SSIS が退屈な作業を突然元に戻した場合の再構成! - データ型の変更、あれとこれの接続。ただ恐ろしい。推奨事項: 可能であれば避けてください。

于 2016-08-15T05:56:29.520 に答える