Ich bin versucht, ein SSIS-Paket auf SQL 2005 mit den folgenden auszuführen:SSIS DTEXEC Paket Variable Raumzeichen nicht akzeptiert
dtexec /SQL "\MyPackageName" /SERVER mssql1 /MAXCONCURRENT " -1 " /CHECKPOINTING OFF
/SET "\Package.Variables[FileFolder].Value";"\\SomeServer\Someshare\Output Batch\"
Dies ergibt:
Option "Batch " is not valid.
Der Raum am Ende das Wort Batch innerhalb der Anführungszeichen gab mir einen Hinweis, dass es vielleicht den letzten Backslash als Escape-Zeichen behandelt. Also versuchte ich es auf diese Weise:
dtexec /SQL "\MyPackageName" /SERVER mssql1 /MAXCONCURRENT " -1 " /CHECKPOINTING OFF
/SET "\Package.Variables[FileFolder].Value";"\\\\SomeServer\\Someshare\\Output Batch\\"
Dies das Paket erlaubt zu laufen, aber wenn diese Variable als Name einen Flatfile zur Ausgabe von Daten verwendet wird, um, gibt es jetzt die folgende Fehlermeldung:
Warning: 2010-07-27 14:36:38.23
Code: 0x8007007B
Source: Data Flow Task Flat File Destination [72]
Description: The filename, directory name, or volume label syntax is incorrect.
End Warning
Error: 2010-07-27 14:36:38.23
Code: 0xC020200E
Source: Data Flow Task Flat File Destination [72]
Description: Cannot open the datafile "\\\\SomeServer\\Someshare\\Output Batch\FlatFile.txt".
End Error
Was gibt?
Wäre dies ein Microsoft-Bug? –
Ich denke, es ist etwas Standard, Zitate mit einem Backslash zu entziehen. Der seltsame Teil ist, dass das Entfernen des Backslash selbst nur erlaubt ist, wenn es vor einem doppelten Anführungszeichen steht - im Wesentlichen Backslash-Entweichen '' 'oder' '' '' und nichts anderes. Dies kann normales DOS-Batch-Befehlsverhalten sein - aber ich bin mir nicht sicher. – ErikE
Ich schätze Ihre obige Frage und Antwort sehr. Wenn ich Netzwerkpfade wie \\ mein Server \ mein Pfad \ hatte, würde es in \\ mein "Server \ mein" \ Pfad \ teilen, bis ich Ihre Lösung fand. Ich habe erst vor Monaten damit angefangen zu recherchieren, bis ich deinen Post gefunden habe. –