5
我試圖用下面的SQL執行SSIS包2005:SSIS DTEXEC包變量空格字符不接受
dtexec /SQL "\MyPackageName" /SERVER mssql1 /MAXCONCURRENT " -1 " /CHECKPOINTING OFF
/SET "\Package.Variables[FileFolder].Value";"\\SomeServer\Someshare\Output Batch\"
這產生了:
Option "Batch " is not valid.
在末尾的空間引號內的Batch這個詞給了我一個暗示,也許它將最後一個反斜槓當作一個轉義字符。所以,我想這樣說:
dtexec /SQL "\MyPackageName" /SERVER mssql1 /MAXCONCURRENT " -1 " /CHECKPOINTING OFF
/SET "\Package.Variables[FileFolder].Value";"\\\\SomeServer\\Someshare\\Output Batch\\"
這使包運行,但是當這個變量作爲平面文件輸出數據的名稱,它現在提供了以下錯誤:
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
什麼給?
這會被視爲Microsoft錯誤? – 2013-08-18 23:57:50
我認爲用反斜槓來引用引號是有點標準的。奇怪的部分是,只有在雙引號字符之前才允許轉義反斜槓 - 本質上,反斜槓轉義爲「」或「\」''而沒有別的。這可能是正常的DOS批處理命令行爲 - 但我不確定。 – ErikE 2013-08-19 07:06:05
我真的很感激你的上述問題和答案。當我有像\\我的服務器\我的路徑\這樣的網絡路徑時,它會將其分割爲\\我的「」服務器\我的「\ \路徑\直到找到您的解決方案。我幾個月前開始研究,直到找到你的帖子。 – 2013-08-19 12:26:43