我在平面文件中有35K +记录(比如A列)。我必须检查表X中是否已存在这些记录(具有700000多条记录)
- 我不能在SELECT中使用IN运算符,因为对于35+记录来说它不是一个可行的选项(成本高,限制为1K) - 所有记录都有类似的模式,所以我在SELECT中使用LIKE运算符尝试了模式匹配,但效率非常低。 (X中具有相似模式的记录数量为120000+) - 我没有create table特权来插入新表并减去等等。
我是甲骨文的新手,如果这个问题很天真,我很抱歉。此外,我搜索了类似的问题,无法找到非索引列的答案。
有人可以帮助我吗?
答案 0 :(得分:1)
平面文件是指CSV或TSV等文本文件?如果它只是一个文本文件,请将其加载到数据库中。也许你可以为这份工作创建一个临时表。然后您可以使用以下查询:
select *
from x
where (c1, c2, ...) in (select c1, c2, ... from a);