繁体   English   中英

如何在Oracle数据库中仅从CSV文件插入唯一值?

[英]How to insert only unique values from a CSV file in Oracle database?

我正在使用Servlet上传CSV文件,并使用JDBC将其插入Oracle表中。 我只需要在CSV文件中插入唯一值即可。 如果CSV文件中的值已经在数据库表中,则不应将其插入表中。 因此,它应该仅插入CSV文件中的唯一值。

这些选项应有助于避免额外的数据库调用来处理这种情况。

选项1:非常简单,需要最少的编码...但是在没有全局事务边界时可以使用。

只要获得所有插入,万一出现任何Constraint异常,就捕获它并“不做任何事情”,循环到另一个值

选项2:每次从CSV中读取行时,将其添加到集合中,然后再添加,只需检查对象是否已存在(例如:arrayList.contains(对象实例)),然后仅在没有类似数据的对象时才继续添加)。 最后,进行批量插入。 注意:如果数据很大,请为大容量插入选择固定的数据集。

请考虑以下步骤:

  1. 从CSV文件中读取一个值
  2. 代码针对数据库搜索“值”,如果找不到,则将其插入。

我猜想我们在数据库中插入数据的方式是一个循环,您从csv中读取数据并插入到DB中,所以为什么不简单地执行select satetement检查值是否存在以及是否不存在插入

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM