2016-07-22 13 views
0

Ich habe Probleme beim Implementieren der Ausführung eines SSIS-Pakets über das Befehlszeilendienstprogramm dtexec. Ich implementiere diesen Prozess auf einem SQL 2012-Server (64 Bit) mit Integration Services und Business Intelligence Development Studio (VS).Das SSIS-Paket wird ausgeführt, wenn es manuell auf dem Server ausgeführt wird, aber bei der Ausführung über die Befehlszeile (dtexec) fehlschlägt

Das Paket nimmt einige Protokolldateien auf, manipuliert sie ein wenig und exportiert sie dann in Excel. (Ich habe 32-Bit-Ausführung gezwungen

aktivierte Es läuft auf dem Server in Ordnung, wenn in Visual Studio lief oder manuell, indem Sie auf der Package.dtsx Datei klicken und Ausführen manuell.

Wenn ich über dtexec und Befehlszeile ausführen, ich erhalte eine ACE.OLEDB.12 nicht registrierten Fehler.

screen capture of error

das macht keinen Sinn für mich, weil ich weiß, dass ich den Treiber installiert haben, und es läuft manuell auf dem gleichen Server mit der gleiche Paketeinstellungen

Ich habe die letzten zwei Tage mit wenig Erfolg gesucht, Jede Hilfe wäre willkommen!

+0

Wenn eine Antwort Ihr Problem gelöst hat, sollten Sie die Antwort akzeptieren. Hier ist, wie http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work ... dann hier zurückkehren und das gleiche mit dem Häkchen/Häkchen tun, bis es grün wird. Dies informiert die Community, eine Lösung wurde gefunden. Sonst denken andere vielleicht, dass die Frage noch offen ist und möchten vielleicht (mehr) Antworten posten. Willkommen bei Stack! – Hackerman

Antwort

1

Der Fehler tritt auf, weil die Befehlszeile das 64-Bit-Dienstprogramm DTExec aufruft, das das Paket im 64-Bit-Laufzeitmodus ausführt, jedoch nur 32-Bit-Microsoft ACE 12.0 OLE DB-Treiber installiert sind. In BIDS wird das Paket im 32-Bit-Laufzeitmodus ausgeführt (die Run64BitRuntime-Eigenschaft des IS-Projekts sollte auf "False" gesetzt sein). Daher kann das Paket erfolgreich ausgeführt werden. Um dieses Problem zu beheben, können Sie das 32-Bit-Dienstprogramm DTExec.exe in der Befehlszeile wie folgt angeben: