2013-02-08 3 views
3

Я работаю над существующим пакетом SSIS, чтобы добавить к нему пользовательский журнал. Я пытаюсь проверить его, и у меня есть задача Execute SQL Task, которую я не создавал, которая получает следующую ошибку.SSIS Выполнение задачи SQL Query не может найти хранимую процедуру

Выполнение запроса

"ap_pfl_DropProfileTables"

не удалось со следующей ошибкой:

"Could not find stored procedure 'ap_pfl_DropProfileTables'.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.

Я понятия не имею, почему я получаю эту ошибку, потому что:

  1. я не сделал создайте это или измените его, и этот пакет работает без ошибок при производстве.
  2. Сохраненная процедура просто обрезает две таблицы. У него нет набора результатов или параметров.
  3. Соединения работают правильно, потому что эта сохраненная процедура выполняется одновременно с другим потоком, выполняющим задачу потока данных, которая успешно выполняется и использует только два соединения в этом пакете.
  4. Я проверил двойную и тройную базу данных, чтобы убедиться, что хранимая процедура там написана правильно. Я даже проверил случай букв в хранимой процедуре.

Любые идеи о том, как исправить это?

+5

Вы уверены, что ваша строка подключения указывает на правильное местоположение? Существует ли sproc в данной схеме? Имеет ли учетная запись, выполняющая sproc, правильные разрешения для доступа к ней? – Goose

+0

Строка подключения хороша, потому что задача потока данных, которая работает в одно и то же время, использует одно и то же соединение и успешно завершается без ошибок. Я использую учетную запись системного администратора, так что да, у нее есть доступ. Хранимая процедура создается в dbo – nleidwinger18

+0

Изменили ли параметры в любой точке и/или правильно ли они отображались? – Goose

ответ

2

Да, это разочаровывает - но делает. Ключ состоит в том, чтобы НЕ использовать диспетчер соединений ADO.NET, а вместо этого использовать старый добрый менеджер соединений ADO. Второй ключ - НЕ использовать EXEC или EXECUTE в свойстве SQLStatement редактора Execute SQL Task. Просто введите имя хранимой процедуры (также для хорошей оценки используйте базу данных с названием из трех частей.).

Я не пробовал это с параметрами хранимой процедуры. Кроме того, я не пробовал это с диспетчером соединений OLE DB.

1

Я столкнулся с этим сам, и вот что я сделал (с соединением ADO.NET)

В SQLStatement поле я помещал имя моей хранимой процедуры (dbo.myStoredProc). Я установил свойство IsQueryStoredProcedure в значение «True»

Я думаю, что когда IsQueryStoredProcedure установлен в true, объект автоматически добавляет EXEC, чтобы идентифицировать, что эта команда является вызовом хранимой процедуры.

0

Я знаю, что это старый поток, но я просто столкнулся с этой проблемой при использовании SSIS на SQL 2008 R2.

Для меня с подключением ADO.NET мне действительно нужно было установить IsQueryStoredProcedure в False, после чего ошибка исчезла. Не имело значения, использовал ли я EXEC или нет.

 Смежные вопросы

  • Нет связанных вопросов^_^