4

既存の SSIS パッケージにカスタム ログを追加する作業を行っています。テストしようとしていますが、作成していないSQL実行タスクがあり、次のエラーが発生しています。

クエリの実行

"ap_pfl_DropProfileTables"

次のエラーで失敗しました:

「ストアド プロシージャ 'ap_pfl_DropProfileTables' が見つかりませんでした。」. 考えられる失敗の理由: クエリの問題、「ResultSet」プロパティが正しく設定されていない、パラメーターが正しく設定されていない、または接続が正しく確立されていない。

次の理由により、このエラーが発生する理由がわかりません。

  1. 私はこれを作成したり変更したりしていません。このパッケージは本番環境でエラーなく実行されています。
  2. ストアド プロシージャは 2 つのテーブルを切り捨てるだけです。結果セットやパラメーターはありません。
  3. このストアド プロシージャは、正常に実行され、このパッケージで 2 つの接続のみを使用するデータ フロー タスクを実行している別のスレッドと同時に実行されるため、接続は正しく機能しています。
  4. データベースを 2 回、3 回チェックして、ストアド プロシージャが存在し、スペルが正しいことを確認しました。ストアドプロシージャの文字の大文字と小文字もチェックしました。

これを修正する方法についてのアイデアはありますか?

4

4 に答える 4

3

はい、これはイライラしますが、実行可能です。重要なのは、ADO.NET 接続マネージャーを使用せず、代わりに古き良き ADO 接続マネージャーを使用することです。2 番目のキーは、SQL 実行タスク エディターの SQLStatement プロパティで EXEC または EXECUTE を使用しないことです。ストアド プロシージャの名前を入力するだけです (適切な測定のために、3 部構成の名前規則 database.schema.storedprocedure を使用します)。

ストアド プロシージャの params でこれを試したことはありません。また、OLE DB 接続マネージャーでこれを試したことはありません。

于 2013-11-04T18:38:22.490 に答える
1

私はこれに遭遇しました。これが私がしたことです(ADO.NET接続を使用)

SQLStatement フィールドに、ストアド プロシージャの名前 (dbo.myStoredProc) を入力します。次に、IsQueryStoredProcedure プロパティを「True」に設定します。

IsQueryStoredProcedure が true に設定されている場合、オブジェクトは自動的に EXEC を付加して、コマンドがストアド プロシージャ コールであることを識別していると考えています。

于 2013-12-10T19:51:39.863 に答える