因此,我使用bcp将csv文件导入到我的SQL数据库中。这是命令:
bcp table in D:\temp\some_file.csv -T -S serverName -d dbName -F 2 -c -t "," -r "\n"当我试图导入文件时,我得到了以下错误:
Starting copy...
SQLState = 22001, NativeError = 0
Error = [Microsoft][SQL Server Native Client 11.0]String data, right truncation
SQLState = 22001, NativeError = 0
Error = [Microsoft][SQL Server Native Client 11.0]String data, right truncation
SQLState = 22001, NativeError = 0
Error = [Microsoft][SQL Server Native Client 11.0]String data, right truncation
SQLState = 22001, NativeError = 0
Error = [Microsoft][SQL Server Native Client 11.0]String data, right truncation
SQLState = 22001, NativeError = 0
Error = [Microsoft][SQL Server Native Client 11.0]String data, right truncation
SQLState = 22001, NativeError = 0
Error = [Microsoft][SQL Server Native Client 11.0]String data, right truncation
SQLState = 22001, NativeError = 0
Error = [Microsoft][SQL Server Native Client 11.0]String data, right truncation
SQLState = 22001, NativeError = 0
Error = [Microsoft][SQL Server Native Client 11.0]String data, right truncation
SQLState = 22001, NativeError = 0
Error = [Microsoft][SQL Server Native Client 11.0]String data, right truncation
SQLState = 22001, NativeError = 0
Error = [Microsoft][SQL Server Native Client 11.0]String data, right truncation
24 rows copied.
Network packet size (bytes): 4096
Clock Time (ms.) Total : 31 Average : (774.19 rows per sec.)csv文件的最后2列包含用户全名(“姓氏,名称”),客户全名(“姓氏,名称”)
SYS Hostname,SYS Domain,User Name,Customer Name
server1,test.com,"surname, name","surname2, name2"有没有可能忽略,之间的""?
谢谢
编辑:
正如@AlwaysLearning所言:
您有一个引用的CSV文件,这是bcp.exe进程无法处理的。根据RFC4180,您的数据行有四个字段-- server1 test.com姓氏、name和surname2,但bcp.exe只看到逗号,因此认为它是6个字段。考虑其他方法--例如使用PowerShell脚本使用Import将数据文件加载到DataTable中,然后通过SQL连接使用SqlBulkCopy对象插入DataTable
还有其他选项可以通过命令行o SQL脚本导入CSV文件吗?
谢谢
发布于 2021-04-20 20:15:57
请看这里的回应。只要引用的字段始终在文件的每一行上,BCP就可以工作。无论名称值是否包含逗号。下面的问题是关于出口,但在进口方面同样有效。你实质上告诉BCP,测定仪是",“而不仅仅是,
https://stackoverflow.com/questions/66995274
复制相似问题