2017-11-28 3 views
0

Ich aktualisiere eine SSIS-Aufgabe und bekomme einen seltsamen Fehler: Wenn sie ausgeführt wird, kann sie keine Datei laden, die dieselbe SSIS-Aufgabe erstellt.Fehler beim Laden der XML-Datei im SSIS-Paket

Diese Aufgabe ruft eine ZIP-Datei, extrahiert sie in einem Pfad und führt dann eine gespeicherte Prozedur bulk die XML-Datei laden, legen Sie seinen Inhalt in einigen Tabellen usw.

Es ist das Drucken der folgenden Fehler in den Protokollen :

Empresas:Error: Executing the query "execute carga.sp_cargaInicialEmpresas ?, ?" 
failed with the following error: "Erro na procedure xxxxx2016_CI.carga.sp_cargaInicialEmpresas) 
Linha: 1Mensagem: Cannot bulk load because the file "C:\xxxxx2016\arquivos\Empresa\2017\2403\02\151423_ExecucaoEmpresas\ExecucaoEmpresas.xml" could not be opened. 
Operating system error code 3(The system cannot find the path specified.).". 
Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly. 

Dies ist ein lokaler Pfad, kein Netzwerkpfad, und die XML-Datei wird durch die SSIS Aufgabe selbst erstellt. Ich habe den Pfad im Windows Explorer überprüft und die Datei ist dort und wartet darauf, gelesen zu werden.

Auch die SQLSERVERAGENT Benutzer hat alle Berechtigungen im Verzeichnis "C: \ xxxxx2016 \ Arquivos \ Empresa \ 2017 \ 2403 \ 02 \ 151423_ExecucaoEmpresas \" Verzeichnis.

Wie kann ich das lösen?

+0

SQLSERVER hat keinen Zugriff auf den Ordner. –

+0

Hallo @KashifQureshi, Danke für Ihre Kommentare! Aber wie kann es keinen Zugriff auf den Ordner haben, wenn die .xml-Datei von der gleichen Aufgabe extrahiert wird? Ich überprüfte die Ordnereigenschaften und der SQLSERVERAGENT hat volle Kontrolle und andere Berechtigungen. = ( –

+1

Haben Sie DelayValidation in der Task "execute carga ..." auf true gesetzt? Was passiert, wenn Sie diese Prozedur in SSMS manuell ausführen? –

Antwort

0

Das war eine sehr irreführende Fehlermeldung. Nach einigen Tagen habe ich herausgefunden, dass die Datenbank in meinen SSIS-Task-Verbindungen falsch konfiguriert wurde.

1

Dies ist ein Betriebssystemproblem - Fehler 3. Der Pfad existiert nicht. Bitte beachten Sie die Systemfehlercodes page. Bitte überprüfen Sie den vollständigen Pfad zu der Datei.

Ein Zugriffs Problem wäre ein Fehlercode 5.

Auch es hängt davon ab, wer das SSIS-Paket ausgeführt wird. Machst du es vom Server mit deiner Anmeldung? Führen Sie das Paket unter diesem Berechtigungsnachweis von SQL Agent aus? Haben Sie den Lauf als Berechtigung im Job geändert?

Wie jemand sagte, versuchen Sie es von Hand auszuführen. Wenn es fehlschlägt, ist es der gespeicherte Prozedurcode. Wenn es passiert, dann ist es der Pfad, der von SSIS an den SP übergeben wird. Stellen Sie sicher, dass Sie wissen, was Ihr Arbeitsverzeichnis ist.

Sagen Sie mir, wie Sie ausmachen.

+0

Hi, danke für das Helfen von mir! Ich habe Zugang zu dem Ordner und die Datei ist genau dort. = (Ich werde seinen Pfad von meinem Windows-Explorer: \\ xxx-v034 \ c $ \ xxxxx2016 \ arquivos \ Empresa \ 2017 \ 2403 \ 02 \ 151423_ExecucaoEmpresas Ich bin verpflichtet um einige Namen aus diesem Pfad auszublenden, um zu vermeiden, die Firma zu identifizieren, für die ich arbeite Diese Aufgabe wird ausgeführt e sehr 10 Minuten in diesem Server, ich teste es nicht manuell. Der Standardausführungsbericht besagt, dass der Anrufer NT SERVICE \ SQLSERVERAGENT ist. Ich vermute, es ist der Benutzer, der die Aufgabe ausführt. Ich werde versuchen, es manuell auszuführen. –

+0

Hat es manuell ausgeführt, die gleiche Fehlermeldung erhalten. Ich hatte gehofft, dass etwas mit den Schrägstrichen nicht stimmt, irgendein trivialer Fehler auf dem Pfad ... Aber es scheint in Ordnung zu sein. Das Update, das diese SSIS-Aufgabe offensichtlich brach, beinhaltete, keinen SSIS-Parameter für den Dateipfad zu verwenden, sondern diesen Pfad aus einer DB-Tabelle abzurufen. –

+1

Es scheint, als ob Sie die Pfade wechseln. Der erste war ein c: Laufwerk, der zweite ist ein Netzwerkpfad. Erstellen Sie eine Kopie der Datei und der gespeicherten Prozedur. Speichern Sie es an einem bekannten Speicherort wie dem Protokollverzeichnis von SQL-Dateien. Versuche es noch einmal. Etwas ist gebrochen ... –