日期:2014-05-20  浏览次数:20984 次

oracle插入数据,防止插入重复记录
从access表中提取数据,校验后插入oracle表,并且防止插入重复的记录。
我现在的实现方式是每插入一条之前就查询oracle一次,如果不存在此记录就插入,已经存在就不执行插入,但是效率很低,请问要怎么实现才能效率高点呢?

------解决方案--------------------
你是导数据还是干吗?
都是一条条操作的吗?
------解决方案--------------------
设置主键,这把校验的工作就交给oracle自身了。

如果你想每个字段都不一样,那没办法,你就一个个去比较了
------解决方案--------------------
建议在java里面校验
------解决方案--------------------
如果不是主键,也可以设置字段的唯一性的
------解决方案--------------------
还有种方法,如果数据量不大的话,可以把库里的数据在程序启动的时候给缓存起来,查询的时候直接查就行了减少跟数据库的交互。
------解决方案--------------------
能不能把oracle的表读入内存里进行判定
------解决方案--------------------
不知道你说的重复是什么意思
两条数据完全一致?
两条数据的主键一直?
其他??
------解决方案--------------------
我这里有类似的,我是把执行的语句封装成过程,放到缓存中,每次读取缓存,只是参数值在变,这样你不用每次都去生成查询、执行,有一次,后面的都是读取缓存了
------解决方案--------------------
我这儿也是每次插入都会判断该记录是否存在,通过几个非空字段判断的;如果不存在则插入,存在的话就不操作,这些都是放在过程中的