sql >> Database >  >> RDS >> Sqlserver

Een SSIS-pakket uitvoeren met dtexec

De eerste fout die ik zou aanpakken is "De Excel Connection Manager wordt niet ondersteund in de 64-bits versie van SSIS, omdat er geen OLE DB-provider beschikbaar is."

De kant-en-klare Excel-stuurprogramma's bestaan ​​alleen in de 32-bits adresruimte. BIDS/SSDT is een 32-bits toepassing, dus Excel-bron en -bestemmingen werken prima. Als u ze echter uitvoert vanaf de opdrachtregel/SQL-agent, moet u expliciet de 32-bits versie van het DTEXEC-programma gebruiken.

Stap 1 is ervoor te zorgen dat u het pakket vanaf de opdrachtregel op de server waarop de agent wordt uitgevoerd als uzelf kunt uitvoeren. Ervan uitgaande dat uw SQL Server op de gebruikelijke locatie is geïnstalleerd, heeft u waarschijnlijk een van de volgende DTEXEC.exe tot uw beschikking

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

U wilt de (x86) versie gebruiken. Toekomstige lezers, als u toevallig een 32-versie van Windows gebruikt (Windows 2003, misschien), zijn de eerste 3 de enige beschikbare opties voor u. Zoals de foutmelding van Vivek aangeeft, voert hij een SSIS-pakket uit in 64 bit-modus.

dtexec biedt een opdrachtregelschakelaar /X86 zodat u naadloos hetzelfde uitvoerbare bestand kunt gebruiken voor zowel 32- als 64-bits bewerkingen. LEUGENS! De documentatie roept dat wel uit, maar wie leest de documentatie?

Deze optie wordt alleen gebruikt door SQL Server Agent. Deze optie wordt genegeerd als u het hulpprogramma dtexec vanaf de opdrachtprompt uitvoert.

U moet uw pakket dus uitvoeren door het expliciete pad op te geven

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

Ik zie "Kan het beveiligde XML-knooppunt niet decoderen" in uw uitvoer en u geeft ook aan dat u configuratiebestanden gebruikt, zodat u hoogstwaarschijnlijk uw PackageProtectionLevel kunt wijzigen van de standaard EncryptSensitiveWithUserKey in DontSaveSensitive. Die functie bestaat om onbedoelde blootstelling van gevoelige gegevens (wachtwoorden) te voorkomen, maar aangezien u dat al met configuratiebestanden doet, zou dat geen probleem moeten zijn. ... Dat zou eigenlijk een fout kunnen zijn van een van de andere pakketbeschermingsniveaus nu ik erover nadenk.

Probeer in ieder geval eerst het 32-bits uitvoerbare bestand uit te voeren. Als dat niet werkt, probeer dan het pakketbeschermingsniveau te wijzigen zoals aangegeven. Als een van beide ervoor zorgt dat het pakket werkt zoals verwacht, probeer dan hetzelfde commando vanuit de SQL Agent uit te voeren.

Als het allemaal werkt, markeer dit dan als het antwoord. Als dit niet het geval is, update dan het ticket met de huidige fout die wordt gegenereerd en we zullen om meer informatie vragen.



  1. Opmerkingen en vind-ik-leuks implementeren in de database

  2. SIGN() Functie in Oracle

  3. Hoe maak je een tabel met twee of meer externe sleutels met Android Room?

  4. Hoe een varchar-kolom te splitsen als meerdere waarden in SQL?