Sql server 使用带格式文件的bcp从csv批量导入MS-SQL

Sql server 使用带格式文件的bcp从csv批量导入MS-SQL,sql-server,xml,csv,format,bcp,Sql Server,Xml,Csv,Format,Bcp,我无法让bcp从csv文件导入数据。我已经缩小了问题的范围,以便与格式化文件有关。我怀疑这可能是一个错误的配置,但我不知道我到底错在哪里 我的表是XXX.dbo.test,有一个名为“banana”的VARCHAR(50)列 My data.csv文件包含四行: aaaaaaaaaaaaa bbbbbbbbbbbbb ccccccccccccc ddddddddddddd 其中换行符为CR-LF 我的格式文件为xml格式,名为format.xml,包含: <?xml version="1

我无法让bcp从csv文件导入数据。我已经缩小了问题的范围,以便与格式化文件有关。我怀疑这可能是一个错误的配置,但我不知道我到底错在哪里

我的表是XXX.dbo.test,有一个名为“banana”的VARCHAR(50)列

My data.csv文件包含四行:

aaaaaaaaaaaaa
bbbbbbbbbbbbb
ccccccccccccc
ddddddddddddd
其中换行符为CR-LF

我的格式文件为xml格式,名为format.xml,包含:

<?xml version="1.0"?>
<BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <RECORD>
  <FIELD ID="1" xsi:type="CharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="50" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
 </RECORD>
 <ROW>
  <COLUMN SOURCE="1" NAME="banana" xsi:type="SQLVARYCHAR"/>
 </ROW>
</BCPFORMAT>
结果是

Starting copy...

4 rows copied.
Network packet size (bytes): 4096
Clock Time (ms.) Total     : 109    Average : (36.70 rows per sec.)
Starting copy...

0 rows copied.
Network packet size (bytes): 4096
Clock Time (ms.) Total     : 16
所以这很好

如果我跑了

bcp XXX.dbo.test in data.csv -f format.xml -T -S myserver,port
结果是

Starting copy...

0 rows copied.
Network packet size (bytes): 4096
Clock Time (ms.) Total     : 16
我的format.xml有什么问题


谢谢。

在第一眼看到的时候有一个打字错误:
xsi:type=“SQLVARYCHAR”
。我不知道数据类型VARYCHAR…感谢您的评论(和编辑!)。我已经使用bcp的格式选项生成了xml文件,所以它应该是正确的。更多信息(向下滚动75%):。我已经通过将SQLVARYCHAR更改为XXX进行了验证,这给了我一个错误:SQLState=HY000,NativeError=0 error=[Microsoft][SQL Server Native Client 10.0][SQL Server]属性xsi:type的值在xml格式文件中对于第7行第62列的字段不正确。使用其他字符类型,bcp仍然只会告诉我已导入0行。