Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Esecuzione di un pacchetto SSIS utilizzando dtexec

Il primo errore da risolvere è "Excel Connection Manager non è supportato nella versione a 64 bit di SSIS, poiché non è disponibile alcun provider OLE DB".

I driver Excel pronti all'uso esistono solo nello spazio degli indirizzi a 32 bit. BIDS/SSDT è un'applicazione a 32 bit, quindi l'origine e le destinazioni di Excel funzionano perfettamente. Tuttavia, quando li esegui dalla riga di comando/SQL Agent, devi utilizzare esplicitamente la versione a 32 bit del programma DTEXEC.

Il passaggio 1 sarà quello di assicurarti di poter eseguire il pacchetto dalla riga di comando sul server su cui l'agente viene eseguito come te stesso. Supponendo che il tuo SQL Server sia installato nella posizione abituale, probabilmente hai uno dei seguenti DTEXEC.exe a tua disposizione

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

Ti consigliamo di utilizzare la versione (x86). Futuri lettori, se ti capita di essere su una versione 32 di Windows (Windows 2003, forse), le prime 3 saranno le uniche opzioni a tua disposizione. Come indicato dal messaggio di errore di Vivek, sta eseguendo un pacchetto SSIS in modalità a 64 bit.

dtexec fornisce un'opzione della riga di comando /X86 per consentire di utilizzare senza problemi lo stesso eseguibile sia per le operazioni a 32 che a 64 bit. BUGGE! La documentazione lo richiama, ma chi legge la documentazione?

Questa opzione è utilizzata solo da SQL Server Agent. Questa opzione viene ignorata se si esegue l'utilità dtexec al prompt dei comandi.

Quindi, dovrai eseguire il tuo pacchetto fornendo il percorso esplicito

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

Vedo "Impossibile decrittografare il nodo XML protetto" nel tuo output e affermi anche che stai utilizzando i file di configurazione, quindi molto probabilmente puoi modificare il tuo PackageProtectionLevel da EncryptSensitiveWithUserKey predefinito a DontSaveSensitive. Questa funzione esiste per prevenire l'esposizione accidentale di dati sensibili (password), ma poiché li stai già gestendo con i file di configurazione, questo non dovrebbe essere un problema. ... Potrebbe essere effettivamente un errore da uno degli altri livelli di protezione del pacchetto ora che ci penso.

In ogni caso, prova prima a eseguire dall'eseguibile a 32 bit. Se non funziona, prova a modificare il livello di protezione del pacchetto come indicato. Se uno di questi due esegue il pacchetto come previsto, prova a eseguire lo stesso comando dall'agente SQL.

Se tutto funziona, segnalo come risposta. In caso contrario, aggiorna il ticket con l'errore corrente generato e ti chiederemo maggiori informazioni.