sql >> Base de Datos >  >> RDS >> Sqlserver

Ejecutar un paquete SSIS usando dtexec

El primer error que abordaría es "Excel Connection Manager no es compatible con la versión de 64 bits de SSIS, ya que no hay ningún proveedor OLE DB disponible".

Los controladores de Excel listos para usar solo existen en el espacio de direcciones de 32 bits. BIDS/SSDT es una aplicación de 32 bits, por lo que el origen y los destinos de Excel funcionan perfectamente. Sin embargo, cuando los ejecuta desde la línea de comandos/Agente SQL, necesita usar explícitamente la versión de 32 bits del programa DTEXEC.

El paso 1 será asegurarse de que puede ejecutar el paquete desde la línea de comandos en el servidor en el que se ejecuta el agente como usted mismo. Suponiendo que su SQL Server esté instalado en la ubicación habitual, probablemente tenga uno de los siguientes DTEXEC.exe disponible

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

Deberá utilizar la versión (x86). Futuros lectores, si tienen una versión 32 de Windows (Windows 2003, tal vez), las primeras 3 serán las únicas opciones disponibles para ustedes. Como indica el mensaje de error de Vivek, está ejecutando un paquete SSIS en modo de 64 bits.

dtexec proporciona un conmutador de línea de comandos /X86 para permitirle usar sin problemas el mismo ejecutable para operaciones de 32 y 64 bits. ¡MENTIRAS! La documentación lo menciona, pero ¿quién lee la documentación?

Esta opción solo la utiliza el Agente SQL Server. Esta opción se ignora si ejecuta la utilidad dtexec en el símbolo del sistema.

Por lo tanto, deberá ejecutar su paquete proporcionando la ruta explícita

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

Veo "Error al descifrar el nodo XML protegido" en su salida y también indica que está usando archivos de configuración, por lo que lo más probable es que pueda cambiar su PackageProtectionLevel del valor predeterminado EncryptSensitiveWithUserKey a DontSaveSensitive. Esa característica existe para evitar la exposición accidental de datos confidenciales (contraseñas), pero dado que ya está manejando eso con archivos de configuración, eso no debería ser un problema. ... Eso podría ser un error de uno de los otros niveles de protección del paquete ahora que lo pienso.

En cualquier caso, intente ejecutar primero desde el ejecutable de 32 bits. Si eso no funciona, intente cambiar el nivel de protección del paquete como se indica. Si cualquiera de ellos hace que el paquete se ejecute como se esperaba, intente ejecutar el mismo comando desde el Agente SQL.

Si todo funciona, marca esto como la respuesta. De lo contrario, actualice el ticket con el error actual que se está generando y le pediremos más información.