2015-09-27 80 views
0

嗨或許有人可以爲我闡明一點,使用sql查詢我得到供應商發票詳細信息的列表,然後使用bcp輸出到csv文件以導入到一個ERP系統,這個查詢的結果有一些包含€符號的供應商代碼,但是當csv文件被創建時,€符號被替換爲_從SQL Server的bcp輸出用下劃線代替€符號

€符號在SQL服務器中顯示正常,但不在下面的csv文件是我的輸出命令

set @bcpCommand = 'bcp "select Supplier_Code,DocType,Invoice_No,Description,Net_Total,Vat_Total,Total from [MyDatabase].[dbo].tempPurchInv order by Invoice_No asc" queryout '[email protected]+ '.csv' +' '+ '-c -t, -T -S' +' '+ @@SERVERNAME 

exec master..xp_cmdshell @bcpCommand 
+0

@marc_s,我相信-N也會導出非本地(二進制)的字符列,所以文件格式不會是逗號分隔的文本文件。 –

回答

4

如果不指定代碼頁,則OEM代碼頁用於char/varchar列。嘗試添加-C RAW的BCP命令或代碼頁支持€符號:

SET @bcpCommand = 'bcp "select Supplier_Code,DocType,Invoice_No,Description,Net_Total,Vat_Total,Total from [MyDatabase].[dbo].tempPurchInv order by Invoice_No asc" queryout '[email protected]+ '.csv' +' '+ '-c -t, -T -C RAW -S' +' '+ @@SERVERNAME; 

EXEC master..xp_cmdshell @bcpCommand; 

編輯:

注意消費系統需要知道非Unicode的代碼頁文件。通過RAW規範,這將成爲列整理的代碼頁。

+0

感謝您的幫助,工作得很好,解釋很棒。 – Paulmc