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

Come eseguire pacchetti dtsx tramite riga di comando

Indovinando qui mentre aspetto una risposta al commento, generalmente quando un pacchetto funziona correttamente in BIDS ma non funziona dalla riga di comando, trovo che sia correlato all'incompatibilità a 64/32 bit.

Stai usando Excel, Access o qualsiasi altra cosa che sotto i fogli utilizzi il driver JET? Funziona solo in modalità a 32 bit.

Su un sistema operativo a 64 bit, per impostazione predefinita, quando crei una nuova connessione ODBC, la creerai nello spazio dei nomi a 64 bit a cui la versione a 32 bit non sarà in grado di accedere?

Stai usando i driver Informix o UDB/DB2? Ne ho trovati solo 32 versioni.

Eseguire un pacchetto dalla riga di comando

dtexec è il meccanismo della riga di comando per eseguire un pacchetto SSIS. È disponibile in 2 versioni per OS a 64 bit, entrambi sono denominati dtexec e generalmente il 32 bit è referenziato nella variabile di ambiente Windows Path

In un sistema operativo a 64 bit, il percorso predefinito per il 64 bit sarebbe "c:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe"

Sempre su OS a 64 bit, il percorso per la versione 32 sarebbe "c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe"

Per eseguire un pacchetto chiamato FooBar.dtsx che risiede in C:\Src\MyProject\MyProject, la chiamata sarebbe

"c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" /file C:\Src\MyProject\MyProject\FooBar.dtsx

Se quel pacchetto risiede su SQL Server (DEVSQL01) nella cartella MyProject, questa sarebbe la chiamata per eseguire lo stesso pacchetto.

"c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" /SQL \MyProject\FooBar /SERVER DEVSQL01

Modifica

Per applicare una configurazione, è necessario specificare il /CONF opzione

"c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" /file C:\Src\MyProject\MyProject\FooBar.dtsx /CONF C:\FooBar.dtsConfig

Guardando i tuoi commenti, l'unica differenza tra il nostro utilizzo è che hai racchiuso tutto tra virgolette. Provalo senza la citazione precedente e finale.