sql >> Databáze >  >> RDS >> Sqlserver

Jak spouštět balíčky dtsx pomocí příkazového řádku

Když zde budu hádat, zatímco čekám na odpověď na komentář, obvykle když balíček běží v pořádku v BIDS, ale nefunguje z příkazového řádku, zjistím, že to souvisí s nekompatibilitou 64/32 bitů.

Používáte Excel, Access nebo cokoli jiného, ​​co pod listy používá ovladač JET? To funguje pouze v 32bitovém režimu.

Na 64bitovém OS se ve výchozím nastavení při vytváření nového připojení ODBC vytvoří v 64bitovém jmenném prostoru, ke kterému 32bitová verze nebude mít přístup?

Používáte ovladače Informix nebo UDB/DB2? Našel jsem jich jen 32 verzí.

Spuštění balíčku z příkazového řádku

dtexec je mechanismus příkazového řádku pro spouštění balíčku SSIS. Dodává se ve 2 variantách pro 64bitový OS, obě se jmenují dtexec a obecně je na 32 bitů odkazováno v proměnné prostředí Windows Path

V 64bitovém operačním systému by výchozí cesta k 64bitovému systému byla "c:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe"

Stále na 64bitovém OS by cesta k 32 verzi byla "c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe"

Chcete-li spustit balíček s názvem FooBar.dtsx, který se nachází v C:\Src\MyProject\MyProject, vyvolání by bylo

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

Pokud tento balíček žije na serveru SQL Server (DEVSQL01) ve složce MyProject, bude to volání ke spuštění stejného balíčku.

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

Upravit

Chcete-li použít konfiguraci, musíte zadat /CONF možnost

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

Když se podíváte na vaše komentáře, jediný rozdíl mezi naším použitím je, že jste vše zabalili do dvojitých uvozovek. Zkuste to bez předchozí a koncové uvozovky.



  1. Spusťte aktualizaci řádku v jiné tabulce

  2. Již existuje otevřený DataReader ... i když není

  3. Opakujte nkrát bez použití uložené procedury

  4. Vytváření dotazu, který vrací id, pokud se podmínka shoduje v řádcích ze dvou tabulek