【发布时间】:2019-07-23 06:13:16
【问题描述】:
我正在尝试提取以下带有内容的 .txt 文件
2|Jürgen
3|Jürgen
4|Jürgen
由| 分隔。第二列是重音字母,因为我想测试保留重音字母的sql表。
要摄取的sql表定义为
CREATE TABLE [stage].[bcp_test](
[ID] [int] NOT NULL,
[TERM] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CS_AS NOT NULL)
如果我做一个简单的插入,insert into stage.bcp_test values(1,'Jürgen')
我可以看到表中保留的 Jürgen 口音。
但是当我尝试通过 bcp 在示例文件中插入 3 行时
bcp stage.bcp_test in "test.txt" -S dbservername -c -t "|" -T -F 1 -b 20000 -m 1 -e error.txt
Jürgen 成为 J├╝rgen。
根据一些建议,我将 -c 更改为 -t。于是新的 bcp 命令就变成了
bcp stage.bcp_test in "test.txt" -S dbservername -w -t "|" -T -F 1 -b 20000 -m 1 -e error.txt
有什么我错过的吗?我试图搜索不同的地方,但找不到解决方案。我可以使用 bcp -w bcp 一个 .txt 文件吗?
============================ 关于 Pa1 的建议,我在我的 sql server 中得到的内容如下:
与他的帖子略有不同,可能是sql版本的原因?
我的 Sql 服务器版本:
Microsoft SQL Server 2016 (SP2) (X64)
============
补充:Pa1 的解决方案有效。取决于文件的编码方式。
【问题讨论】:
-
stackoverflow.com/questions/9220450/… 这里链接到一个非常古老的帖子,建议使用 bcp -w 来解决重音字母问题。但没有太多后续表明问题是否得到解决。
-
Pa1 的解决方案有效,无需使用 -w。但是我仍然对 -c 和 -w 这件事有点困惑。欢迎回答。
标签: bcp