带有重音符号的BCP导入

问题描述 投票:0回答:1

我已经以这种格式为bcp创建了一个.csv文件:

x,y,z(CR LF)
x,y,z(CR LF) etc...

我的命令中的bcp如下工作:

bcp "{table}" in "{csv path}" -S {server} -t -T -q -w -f "{format xml file}"

使用以下格式命令和文件:

bcp "{table}" format nul -t, -T -q -S {server} -f {format file} -x

此方法可以工作并上载,但不能正确上载带重音符号的字符。

我看过SQL Docs,但示例无法解决此问题。

我的.csv使用此数据格式:

bigint, date, date, nvarchar, varchar, varchar, bigint, bigint

我误会了,我应该更正格式文件,upload IN命令,还是两者都更正?

谢谢。

编辑:基于MS docs我现在开始手动创建以下格式的文件-总是导致数据类型错误的无效字段大小。

11.0
8
1       SQLCHAR         0       15      ","      1     fn1 Latin1_General_CI_AS
2       SQLDATE         1       3       ","      2     fn2 ""
3       SQLDATE         1       3       ","      3     fn3 ""
4       SQLNCHAR        2       510     ","      4     fn4 SQL_Latin1_General_CP1_CI_AS
5       SQLCHAR         2       50      ","      5     fn5 Latin1_General_CI_AS
6       SQLCHAR         2       40      ","      6     fn6 Latin1_General_CI_AS
7       SQLBIGINT       1       8       ","      7     fn7 ""
8       SQLBIGINT       1       8       "\r\n"   8     fn8 ""

我还将表nchar字段上的排序规则更改为'SQL_Latin1_General_CP1_CI_AS'

sql-server tsql command-line sql-server-2012 bcp
1个回答
0
投票

终于解决了!

我将bcp输入.csv更改为ANSI格式,并使用代码页1252创建了.fmt文件。

我还确保我的SQL表字段已整理为SQL_Latin1_General_CP1_CI_AS

所以,一旦.csv是ANSI,我的格式代码就是:

bcp "table" format nul -q -T -S {server} -t, -r \n -f C:\LocalStuff\abc.fmt -c -C 1252 -x

使用abc.fmt上传后,就可以使用!

感谢所有提供帮助的人。

© www.soinside.com 2019 - 2024. All rights reserved.