Atribuindo valor do conjunto de resultados de linha única no ssis, dando erro no SSIS 2012
Estou tentando obter IDs CSV de uma tabela do servidor sql e atribuir o resultado a uma variável. abaixo está o sql que coloquei dentro doExecutar tarefa 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
Como você pode ver, é uma maneira simples e padrão de obter csv de um campo no t-sql. Funciona perfeitamente na janela de consulta, mas jogando abaixo do erro quando executo a tarefa no SSIS 2012
Erro [Executar tarefa SQL]: o tipo de valor (__ComObject) só pode ser convertido em variáveis do tipo Objeto.
[Executar tarefa SQL] Erro: ocorreu um erro ao atribuir um valor à variável "sCSVCompanyIds": "O tipo do valor (DBNull) que está sendo atribuído à variável" User :: sCSVCompanyIds "difere do tipo de variável atual (String). não pode alterar o tipo durante a execução. Os tipos de variáveis são estritos, exceto as variáveis do tipo Object. ".
Abaixo estão as configurações da tarefa Executar SQL
NoGeral guia Projeto de conjunto de resultados está definido comofila unicaNoConjunto de resultados Na guia Nome do resultado está definido como 0 (também tentei configurando-o comocsvids
qual é o nome da coluna de alias na lista de seleção) e Nome da variável é definido comoUser::sCSVCompanyIds
Não tenho idéia por que não está funcionando. Depois de perder tanto tempo, sou trabalhado de maneira difícil, retornando o resultado como conjunto de linhas completas (o mesmo SQL que retorna sempre uma coluna 1 de linha 1) e adiciono um para cada contêiner de loop a lançar o conjunto de resultados (que sempre itera apenas uma vez por razões óbvias) e atribua os campos do conjunto de resultados à variável. Funciona para mim, mas deve haver uma maneira fácil de fazê-lo. O que estou perdendo?