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

Spuštění balíčku SSIS pomocí dtexec

První chyba, kterou bych řešil, je "Správce připojení aplikace Excel není podporován v 64bitové verzi SSIS, protože není k dispozici žádný poskytovatel OLE DB."

Ovladače Excelu připravené k použití existují pouze v 32bitovém adresním prostoru. BIDS/SSDT je ​​32bitová aplikace, takže zdroje a cíle aplikace Excel fungují dobře. Když je však spouštíte z příkazového řádku/SQL Agenta, musíte explicitně použít 32bitovou verzi programu DTEXEC.

Krok 1 zajistí, že můžete balíček spustit z příkazového řádku na serveru, na kterém agent spouští, jako vy. Za předpokladu, že je váš SQL Server nainstalován v obvyklém umístění, pravděpodobně máte k dispozici jeden z následujících DTEXEC.exe

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

Budete chtít použít verzi (x86). Budoucí čtenáři, pokud náhodou používáte verzi 32 Windows (možná Windows 2003), první 3 budou jedinou možností, kterou budete mít k dispozici. Jak ukázala chybová zpráva Vivek, spouští balíček SSIS v 64bitovém režimu.

dtexec poskytuje přepínač příkazového řádku /X86 což vám umožní bezproblémově používat stejný spustitelný soubor pro 32 i 64 bitové operace. LEŽÍ! Dokumentace to říká, ale kdo čte dokumentaci?

Tuto možnost používá pouze SQL Server Agent. Tato možnost je ignorována, pokud spustíte obslužný program dtexec na příkazovém řádku.

Budete tedy muset spustit svůj balíček zadáním explicitní cesty

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

Ve vašem výstupu vidím „Nepodařilo se dešifrovat chráněný uzel XML“ a také uvádíte, že používáte konfigurační soubory, takže s největší pravděpodobností můžete změnit svou PackageProtectionLevel z výchozí EncryptSensitiveWithUserKey na DontSaveSensitive. Tato funkce existuje, aby se zabránilo náhodnému vystavení citlivých dat (hesel), ale protože to již zpracováváte pomocí konfiguračních souborů, neměl by to být problém. ... To může být ve skutečnosti chyba z jedné z dalších úrovní ochrany balíčku, když o tom teď přemýšlím.

V každém případě zkuste nejprve spustit z 32bitového spustitelného souboru. Pokud to nefunguje, zkuste změnit úroveň ochrany balíčku, jak je uvedeno. Pokud některý z nich způsobí, že balíček běží podle očekávání, zkuste spustit stejný příkaz z SQL Agent.

Pokud vše funguje, označte toto jako odpověď. Pokud ne, aktualizujte lístek s aktuální generovanou chybou a my vás požádáme o další informace.



  1. Jak nainstalovat phpMyAdmin na spravované hostingové účty

  2. Jak vybrat a seřadit podle sloupců, které nejsou v SQL příkazu Groupy By - Oracle

  3. Jak mohu povolit pomalý protokol dotazů MySQL bez restartování MySQL?

  4. Jak zjistit čas provádění dotazu v Oracle SQL Developer?