2

我在 sql server 中使用 bcp 命令在以下命令的帮助下将查询生成的数据导出到 .csv 文件

*xp_cmdshell bcp EXEC .DBO。查询 -U -P /c /t, -T -S *

它工作正常并按预期导出数据,但现在我们有一个包含多语言数据的列,并且在导出过程中,csv 文件中的上述命令数据显示为“????????”。

在进行了一些谷歌搜索后,我发现了一些其他开关,如 -w 用于 unicode 字符,但此选项正在创建 unicode 文件并且无法在 excel 中正确打开(列不以逗号(,)分隔)

如果我缺少任何东西,有人可以帮助我吗?

4

5 回答 5

2

/t,是不正确的。它应该读取-t,以设置字段分隔符。并且-w是 unicode 的正确标志。我也不认为-U/-P 与-T 一起使用。

bcp AdventureWorks2012..myTestUniCharData out C:\myTestUniCharData-w.Dat -w -t, -T

请参阅以下技术说明中的示例区域: http ://technet.microsoft.com/en-us/library/ms188289.aspx

于 2013-10-16T13:04:15.200 回答
2

尝试仅使用 -w -T 。不要添加字段分隔符

于 2014-07-14T08:32:20.010 回答
0

使用-wswitch 会产生一个 UTF16 格式的文件,这并不容易使用。

如果您的特殊字符被ISO 8859-1字符覆盖,则使用 bcp 命令中的开关-C -c-C制作 ISO 8859-1 文件。

于 2020-10-05T18:21:36.117 回答
0

我不认为“/c”或“/t”是正确的开关。请参阅此处的文档:它应该是 -c 或在您的情况下为 -w 用于 unicode。从 cmd 行尝试使用:

bcp AdventureWorks2012.dbo.myTestUniCharData IN C:\temp\logs\ex170112.log -w -S localhost\SQLEXPRESS -T

您还可以使用格式文件 (.fmt) 来告诉它格式化某些列。看这里

于 2017-04-12T18:45:05.840 回答
0

以下对我有用,可以从文本文件中导入 unicode:

bcp dbo.MyTable in unicode-input.txt -S localhost -T -d EWBKonfig -C 65001 -c -t, -r '0x0A'
于 2022-02-15T17:57:58.260 回答