Выполните задачу SQL в службах SSIS 2005. Тип соединения ADO.NET и входной параметр хранимой процедуры.Не работает.Ошибка синтаксиса - PullRequest
2 голосов
/ 02 сентября 2010

Я выполняю задачу SQL в SSIS 2005. Тип соединения ADO.NET и входной параметр хранимой процедуры.Не работает.Синтаксическая ошибка. Я прочитал некоторые документы и блоги, но у меня не работает.Это то, что я имею в операторе SQL задачи Exeute sql (ADO.NET)

EXEC StoredProcedureName @ParameterName =

Это дает разные ошибки в различном синтаксисе, который я пробовал,Все сбои Проблемы с запросом, свойство «ResultSet» установлено неправильно, параметры установлены неправильно или подключение установлено неправильно.

Я перепробовал все комбинации, например EXEC StoredProcedureName @ParameterName =?StoredProcedureName?StoredProcedureName @ParameterName =?и т. д. и т. д.

Я проверил тип параметра и его параметры

Такая же настройка работает, если я изменю тип подключения на OLE DB.Но я не хочу OLE DB и хочу изменить его на ADO.NET

Я пытался в соответствии со спецификацией Microsoft, но это также не сработало для Micrtosoft, если IsQueryStoredProcedure имеет значение False, EXEC uspGetBillOfMaterials @StartProductID,@ CheckDate

Я пытался изменить все комбинации в свойстве IsQueryStoredProcedure также напрасно. Я правильно сопоставил имя параметра, порядок и переменную в сопоставлениях параметров, но все же не повезло

, как я уже сказал, что он работает с OLEDB, но не работаетработать с ADO.NET даже после изменения синтаксиса.Пожалуйста, помогите

У меня есть другая задача на ADO.NET, и она отлично работает, потому что у него нет входного параметра

Ответы [ 2 ]

4 голосов
/ 12 апреля 2012

Старый вопрос, но на случай, если он кому-нибудь поможет:

  1. Установите IsQueryStoredProcedure на True
  2. Напишите ТОЛЬКО имя хранимой процедуры в SQLStatement: sp_MyStoredProcedure
  3. На вкладке «Сопоставление» добавьте свой параметр:

    Direction = input ; Name = @parameterName

1 голос
/ 05 сентября 2010

Попробуйте установить для IsQueryStoredProcedure значение False, а затем для SqlStatement установить значение

Execute MyStoredProcedure @ MyParameter

Где @MyParameter - это имя параметра в разделе сопоставления параметров задачи, которая ссылается напеременная в вашем пакете.Эта переменная содержит значение, которое вы хотите передать хранимой процедуре.

При использовании параметров подключения ADO.NET следует использовать обозначение «@», при использовании OLE DB следует использовать «?»нотации.

ADO.NET.Выполните MyStoredProcedure @MyParameter OLE DB.Выполнить MyStoredProcedure?

Помните, что при использовании OLE DB вы должны ссылаться на имена параметров (в сопоставлении параметров), используя 0,1,2,3 и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...