首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用BCP实用程序和w开关导入数据

无法使用BCP实用程序和w开关导入数据
EN

Stack Overflow用户
提问于 2021-07-10 23:02:09
回答 1查看 23关注 0票数 0

我有一个制表符分隔的文件,它有unicode字符和LF作为行尾。但是,当我尝试使用bcp实用程序和加载到表中的-c开关导入此文件时,字符不正确。当我尝试使用-w开关时,它无法加载,并出现以下错误。

“在BCP数据文件中遇到MicrosoftUnexpected EOF”

下面是文件中的文本

代码语言:javascript
复制
ialgcd  ianvmn  sourceVersion
PT  Português   2021-06-W24
SP  español 2021-06-W24
EG  English 2021-06-W24
FR  Français    2021-06-W24
GE  Deutsch 2021-06-W24
RU  Русский 2021-06-W24
PB  Português(Brazil)   2021-06-W24
KR  한국어 2021-06-W24
CH  中文  2021-06-W24

如果我以下面的方式使用-c开关,它会正确加载。但是不正确的字符

代码语言:javascript
复制
bcp TableName1 in DelimitedFile1.txt -c -T -S Server01 -q -t \t -r 0x0A -F2

如果我使用-w开关,它不会加载任何数据并抛出错误

代码语言:javascript
复制
bcp TableName1 in DelimitedFile1.txt -w -T -S Server01 -q -t \t -r 0x0A -F2

我尝试了行终止符和字段终止符的所有不同类型的组合,还尝试使用-N开关,也尝试使用格式化文件,但都不起作用。

我尝试使用的格式化文件是

代码语言:javascript
复制
14.0
3
1       SQLNCHAR            2       510     "\t"         1     ialgcd                         SQL_Latin1_General_CP1_CI_AS
2       SQLNCHAR            2       510     "\t"         2     ianvmn                         SQL_Latin1_General_CP1_CI_AS
3       SQLNCHAR            2       510     "0x0A"       3     sourceVersion                  SQL_Latin1_General_CP1_CI_AS

我不确定为什么它能与-c开关一起工作,而不能与-w开关一起工作。它是否期望在文件的开头有一个BOM字符?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-15 14:23:44

我找到了这个问题的解决方案。Unicode开关适用于Unicode字符,但是如果您的文件是-w -8编码的,那么您必须使用-C (大写C)和代码页号,因此对于UT-8,它将是65001以及-c开关(小写c)。

因此,该命令将如下所示

代码语言:javascript
复制
bcp TableName1 in DelimitedFile1.txt -c -C 65001 -T -S Server01 -q -t \t -r 0x0A -F2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68328871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档