批量插入CSV文件

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

我有一个创建CSV文件的Java代码,然后使用SQL Server“ BULK INSERT”将数据插入数据库;我没有格式文件。 SQL Server是2008。

当我通过单元测试运行代码,然后运行以下sql代码时,一切正常,数据插入表中:

declare
@csvFileName VARCHAR (1024)= 'file.csv',
@csvFormatFileName VARCHAR (1024)= null,
@tableName VARCHAR (256) = 'tableName';

EXECUTE (       
'BULK INSERT '+ @tableName +' FROM ''' + @csvFileName + ''' WITH 
(FIRSTROW=2, FIELDTERMINATOR=''\t'', ROWTERMINATOR=''\n'', MAXERRORS=0);');

[当我的Java代码在生产中运行并创建CSV文件时,如果我抓取所创建的CSV文件之一并运行上面的SQL,它不会给我任何错误,但是没有数据插入表中,我会得到: >

(0 row(s) affected)

我首先认为是导致问题的生产数据库服务器与开发数据库服务器,但事实并非如此。

这是CSV文件中的示例数据:

ID  Date    number1 number2 number3

88  2013-01-14  2   0   0.00

64  2013-01-14  0   0   0.00

我看不出任何不同的赌注。可以正常运行的CSV文件,而没有问题的CSV文件!毕竟,它们是使用相同的Java代码创建的。

是否有任何编辑器可以使用制表符,换行符,...完全显示文件的内容?

非常感谢您的帮助。

我有一个创建CSV文件的Java代码,然后使用SQL Server“ BULK INSERT”将数据插入数据库;我没有格式文件。 SQL Server是2008。我通过单元运行代码时...

java sql sql-server csv bulkinsert
1个回答
1
投票

我的计算机上在Windows上创建的计算机,该计算机在每行末尾添加CRLF。在Uinx上创建的仅生产LF的产品。解决方案是使用由MS SQL Server bcp实用程序创建的格式文件,该格式文件可在任何平台上运行。

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