Olá pessoal, gostaria de compartilhar com vocês um BUG descoberto por mim no SSIS 2008 R2 (Ainda sem solução)

Esses dias estava em um cliente que tinha o SQL 2005 e migrou para SQL 2008 R2 e os pacotes ainda não haviam sido totalmente testados em ambiente de desenvolvimento.

Alguns dos pacotes simplesmente pararam de funcionar com a mensagem

Error at Data Flow Task [LINKED SERVER [1]]: No column information was returned by the SQL command.

Segue abaixo procedimentos para reproduzir o erro

Crie uma procedure qualquer com o um “SELECT * FROM TABELA”

Se vc executar ela diretamente ao clicar em columns ele traz normalmente os metadados

image

image

Agora se vc executar via linked server exatamente a mesma procedure via linked server (no meu exemplo fiz um linked server para meu próprio servidor apenas para teste), ele traz a mensagem.

EXEC [127.0.0.1].sandbox.dbo.spTESTE_VAR

image

Uma informação é que este BUG não ocorre no SSIS 2005

Já tenho um chamado aberto na microsoft que confirmou que é um BUG e será feito uma correção.

WORKAROUND

Normalmente o SSIS acessa os metadados do SQL para retornar quais colunas e tipos de dados serão usados, retornando muito rapidamente

Usando o “SET FMTONLY OFF” antes da execução da procedure acaba fazendo com que o SSIS execute a procedure para saber que tipos de dados ela vai retornar, ou seja se a procedure é rápida vc não ira perceber a diferença, mas se a procedure demorar 30 min para rodar esquece, pois o SSIS ao executar ele Pré-Valida, Valida, só depois executa, ou seja, o tempo total sobe para 1h e 30 min

SET FMTONLY OFF
EXEC [127.0.0.1].sandbox.dbo.spTESTE_VAR

Espero que isso ajude alguém, assim que tiver novidades sobre o chamado te aviso.

Anúncios