Я пытаюсь получить идентификаторы CSV из таблицы с сервера sql и присваивать результат переменной. Ниже приводится SQL я поставил внутри Execute SQL TaskНазначение значения из одного набора результатов результата в ssis, дающем ошибку в SSIS 2012
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
[Execute SQL Task] Error: The value type (__ComObject) can only be converted to variables of type Object.
[Execute SQL Task] Error: An error occurred while assigning a value to variable "sCSVCompanyIds": "The type of the value (DBNull) being assigned to variable "User::sCSVCompanyIds" differs from the current variable type (String). Variables may not change type during execution. Variable types are strict, except for variables of type Object. ".
Ниже приведены параметры Execute SQL Task
- В вкладке Общие, проект Resultset установлен в однорядные
- в Результат Набор вкладку, Результат имя устанавливается в 0 (Я также попытался, установив его на
csvids
, который является имя столбца псевдоним в выбранном л ist), а переменное имя -User::sCSVCompanyIds
У меня нет ни малейшего понятия, почему он не работает. После того, как я потратил столько времени, я проделал трудный путь, который вернул результат в виде набора Full Row (тот же SQL, который всегда возвращает 1 столбец 1) и добавляет для каждого цикла цикла цикл, который зацикливает результирующий набор (который всегда выполняет итерацию только один раз по очевидным причинам) и присвойте полям набора результатов переменной. Это работает для меня, но должен быть простой способ сделать это. Что мне не хватает?
Попробуйте добавить AS в предложение select select ... cast (id AS varchar (10)) + ',' from ... при запуске кода возвращает ошибку –
@alex Спасибо и, пожалуйста, проигнорируйте эту ошибку. Я случайно удалил его, когда изменил фактическую таблицу/столбцы.Исправлено сейчас –
Вы установили DataType в окне Variables to String? –