BCP:导出时无法使用本机格式

时间:2019-02-23 21:29:48

标签: sql-server bcp

这就是我使用BCP的方式:

-以本机内容(-n)生成格式文件

bcp Sales.dbo.Num format nul -n -f D:\Format.fmt -T -S .\sqlexpress

-使用上述格式文件导出表格

bcp Sales.dbo.Num out D:\FactNum.csv -f D:\Format.fmt -T -S .\sqlexpress

但是我所做的输出.csv总是乱码。

P.S。

  1. 如果格式文件为char版本(带有-c参数),则效果很好

  2. 我尝试了xml本机版本的格式文件,但是没有帮助

  3. 通过this和MSDN上的基本BCP文档

请提出建议

1 个答案:

答案 0 :(得分:0)

您所说的“乱码”是使用本机(-n)数据时得到的。数据以SQL Server的本机格式(而不是ascii文本)写入文件。我相信您想查看ASCII文本?如果是这样,那就是字符(-c)选项的作用。

在这方面,使用格式文件与文件的“格式”无关。

有数据的格式(由-c,-n和其他选项设置),然后有列的格式...如果需要的话,由格式文件定义。

您正在以本机格式导出数据,但是您希望它看起来像不是SQL本机格式的数据。 SQL本机格式不是供人类使用的,而是由SQL Server读取的。