Присвоение значения из результирующего набора из одной строки в ssis дает ошибку в SSIS 2012

Я пытаюсь получить CSV идентификаторы из таблицы с сервера SQL и назначить результат переменной. ниже sql я положил внутриВыполнить задачу SQL

set nocount on
declare @csv varchar(max) = ''
select @csv = @csv + cast(companyid as varchar(10)) + ',' from company where isprocessed = 0
select substring(@csv,1,len(@csv) - 1) as companyids

Как вы можете видеть, это простой и стандартный способ получения CSV поля в t-sql. Он отлично работает в окне запроса, но выдает ошибку ниже, когда я запускаю задачу в SSIS 2012

Ошибка [Выполнить задачу SQL]: тип значения (__ComObject) можно преобразовать только в переменные типа Object.

Ошибка [Выполнение SQL] Ошибка: при назначении значения переменной «sCSVCompanyIds» произошла ошибка: «Тип значения (DBNull), назначаемого переменной« User :: sCSVCompanyIds », отличается от текущего типа переменной (String). Переменные. не может изменять тип во время выполнения. Типы переменных являются строгими, за исключением переменных типа Object. ".

Ниже приведены настройки задачи «Выполнение SQL».

Вгенеральный вкладка, Resultset проект установлен водин рядВНабор результатов На вкладке Result Name установлено значение 0 (я также пытался установить его наcsvids который является именем столбца псевдонима в списке выбора), а имя переменной установлено наUser::sCSVCompanyIds

Я понятия не имею, почему это не работает. Потратив так много времени, я выработал сложный способ, возвращая результат в виде полного набора строк (тот же SQL, который всегда возвращает 1 столбец строки 1) и добавляя для каждого контейнера цикла цикл, который выбрасывает набор результатов (который всегда повторяется. только один раз по понятным причинам) и присвойте переменным набор полей. Это работает для меня, но должен быть легкий способ сделать это. Чего мне не хватает?

Ответы на вопрос(1)

Ваш ответ на вопрос