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生成的,所以我想我需要修改我们的过程来存储列名,然后将答案应用于它们