SSIS Выполнить SQL Задача - строка ввода в неправильном формате - PullRequest
2 голосов
/ 30 марта 2020

У меня есть задача Выполнить SQL, которая пытается выполнить хранимую процедуру, например:

EXEC usp_stored_proc ?, ?, ? OUTPUT, ? OUTPUT;

У меня есть 4 переменные, сопоставленные с параметрами. Игнорируя выходные параметры, обе эти строки сопоставляются с параметрами NVARCHAR (как и ожидалось хранимой процедурой).

Когда я запускаю пакет, ошибка говорит мне, что выполнение завершилось неудачно с сообщением строка ввода не в правильном формате . Однако, когда я использую точку останова, чтобы найти значения времени выполнения для входных параметров (или, по крайней мере, переменных, сопоставленных с ними) и выполнить ту же строку SQL в SSMS, используя значения времени выполнения, все работает нормально.

Может кто-нибудь помочь? Я в конце моей привязи с этим. Я даже не могу найти точный параметр, вызывающий проблему, хотя, вероятно, оба значения имеют одинаковый формат.

Подробнее:

  • Тип подключения: OLE DB
  • Входная переменная: String = schema.table
  • Сопоставленный параметр: NVARCHAR, ParamName = 0, ParamSize = -1

ОБНОВЛЕНИЕ

Решена проблема путем создания нового компонента execute sql, который вызывает урезанный процедура. Затем я медленно добавил строки кода к процедуре и дополнительные параметры, пока не пришел к тому же компоненту, с которого начал, и теперь он работает. Сравнивая исходные и восстановленные задачи, я не вижу абсолютно никаких отличий (как и с процедурой), поэтому я не знаю, почему возникла эта проблема.

Ответы [ 2 ]

1 голос
/ 30 марта 2020

Попробуйте изменить размер параметра (ParamSize), чтобы он соответствовал размеру параметра в хранимой процедуре; если nvarchar(50), тогда установите его на 50.

0 голосов
/ 26 апреля 2020

Решил проблему, создав новый компонент execute sql, который вызывает урезанную процедуру. Затем я медленно добавил строки кода к процедуре и дополнительные параметры, пока не пришел к тому же компоненту, с которого начал, и теперь он работает. Сравнивая исходные и восстановленные задачи, я не вижу абсолютно никаких отличий (как и с процедурой), поэтому не знаю, почему возникла эта проблема.

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