Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从CSV文件插入SQL DB中删除双引号_Java_Sql_Sql Server_Csv - Fatal编程技术网

Java 如何从CSV文件插入SQL DB中删除双引号

Java 如何从CSV文件插入SQL DB中删除双引号,java,sql,sql-server,csv,Java,Sql,Sql Server,Csv,我收到了多个CSV文件,但其中一些文件的每个值都包含在双引号中,这破坏了SQL中的每个进一步处理 应用程序已经有了一个方法,可以获取一些CSV文件(基于它们的名称),逐行读取它们,并在字符串末尾附加一个值以创建新列,然后在不替换旧文件的情况下写入新文件 我曾考虑重新使用该方法并将其应用于每个文件,但不是将新值添加到每行,删除“字符,这应该可以正常工作,但由于一些文件非常大(其中一些大约1GB),我希望避免不必要的性能问题 是否有更好的方法来替换、删除或忽略每个“字符,无论是在Java中还是在S

我收到了多个
CSV
文件,但其中一些文件的每个值都包含在双引号中,这破坏了SQL中的每个进一步处理

应用程序已经有了一个方法,可以获取一些CSV文件(基于它们的名称),逐行读取它们,并在字符串末尾附加一个值以创建新列,然后在不替换旧文件的情况下写入新文件

我曾考虑重新使用该方法并将其应用于每个文件,但不是将新值添加到每行,删除
字符,这应该可以正常工作,但由于一些文件非常大(其中一些大约1GB),我希望避免不必要的性能问题


是否有更好的方法来替换、删除或忽略每个
字符,无论是在Java中还是在SQL插入期间/之后?

您可以使用以下查询从表中简单地替换
双引号(“)

UPDATE TableName
SET Column1 = REPLACE(Column1,'"',''),
Column2 = REPLACE(Column2,'"','')
...
...
...
ColumnN = REPLACE(ColumnN,'"','')

给出一些示例数据。您如何导入数据?使用SSI?如果是,它支持带引号的标识符。使用
批量插入
?如果是,您是否指定了
字段引号
格式
,并使用SQL Server 2017+?如果您使用2016-和
批量插入
,则它不支持带引号的字段,我建议正在寻找另一种方法。@Larnu我们正在SQL Server 2014中使用
批量插入
,因此恐怕需要通过Java@DineshDB我添加了一小段数据,如果您使用的是SQL Server 2014,则需要使用其他工具来执行插入,然后@DS94。或者,您需要更改文件中的分隔符删除数据中没有出现的其他内容(我假设数据中可能会出现逗号(
),并删除字段引号。遗憾的是,目前只有SQL Server 2017和2019支持CSV中的引号字段(或等效字段)问题是我事先不知道列名,甚至不知道表名,因为它是通过动态sql生成的,所以我想我需要修改我们的过程来存储列名,然后将答案应用于它们