Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Executando um pacote SSIS usando dtexec


O primeiro erro que eu abordaria é "O Gerenciador de conexões do Excel não é compatível com a versão de 64 bits do SSIS, pois nenhum provedor OLE DB está disponível".

Os drivers do Excel prontos para uso só existem no espaço de endereço de 32 bits. BIDS/SSDT é um aplicativo de 32 bits para que a origem e os destinos do Excel funcionem bem. No entanto, quando você os executa a partir da linha de comando/Agente SQL, você precisa usar explicitamente a versão de 32 bits do programa DTEXEC.

A etapa 1 será garantir que você possa executar o pacote a partir da linha de comando no servidor em que o agente executa como você mesmo. Supondo que seu SQL Server esteja instalado no local habitual, você provavelmente tem um dos seguintes DTEXEC.exe disponível para você
C:\Program Files\Microsoft SQL Server\90\DTS\Binn\DTExec.exe
c:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe
C:\Program Files\Microsoft SQL Server\110\DTS\Binn\DTExec.exe
C:\Program Files\Microsoft SQL Server\120\DTS\Binn\DTExec.exe
C:\Program Files (x86)\Microsoft SQL Server\90\DTS\Binn\DTExec.exe
C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe
C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\DTExec.exe
C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\DTExec.exe

Você vai querer usar a versão (x86). Futuros leitores, se você estiver em uma versão 32 do Windows (Windows 2003, talvez), as 3 primeiras serão as únicas opções disponíveis para você. Como a mensagem de erro de Vivek indicou, ele está executando um pacote SSIS no modo de 64 bits.

dtexec fornece uma opção de linha de comando /X86 para permitir que você use perfeitamente o mesmo executável para operações de 32 e 64 bits. MENTIRAS! A documentação chama isso, mas quem lê a documentação?

Essa opção é usada apenas pelo SQL Server Agent. Essa opção será ignorada se você executar o utilitário dtexec no prompt de comando.

Portanto, você precisará executar seu pacote fornecendo o caminho explícito

C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe /file C:\folder\GICSReport.dtsx

Eu vejo "Falha ao descriptografar o nó XML protegido" em sua saída e você também afirma que está usando arquivos de configuração para que você possa alterar seu PackageProtectionLevel do padrão EncryptSensitiveWithUserKey para DontSaveSensitive. Esse recurso existe para evitar a exposição acidental de dados confidenciais (senhas), mas como você já está lidando com isso com arquivos de configuração, isso não deve ser um problema. ... Isso pode realmente ser um erro de um dos outros níveis de proteção de pacote agora que penso nisso.

De qualquer forma, tente executar primeiro a partir do executável de 32 bits. Se isso não funcionar, tente alterar o nível de proteção do pacote conforme indicado. Se um deles fizer com que o pacote seja executado conforme o esperado, tente executar o mesmo comando do SQL Agent.

Se tudo funcionar, marque isso como a resposta. Caso contrário, atualize o ticket com o erro atual sendo gerado e solicitaremos mais informações.