gpt4 book ai didi

java - 批量插入 CSV 文件

转载 作者:行者123 更新时间:2023-12-01 14:49:59 24 4
gpt4 key购买 nike

我有一个Java代码,它创建一个CSV文件,然后我使用SQL Sever“BULK INSERT”将数据插入数据库;我没有格式文件。 SQL服务器是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 代码创建的。

是否有任何编辑器可以通过制表符、换行符等准确地向我显示文件的内容?

非常感谢任何帮助。

最佳答案

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

关于java - 批量插入 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14985905/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com