2015-09-27 24 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