oracle 11g sql比较大量的值

时间:2014-03-06 07:23:34

标签: java sql oracle jdbc oracle11g

我正在编写java程序,我需要在其中比较大量的List<String> ids,看看这些ID是否存在于数据库中?我知道可以通过大选择查询select id from my_table where id in ('1','2''3''4''5'...)完成,这会导致非常大的SQL查询。

在Oracle 11g中有没有其他方法可以做到这一点?

由于

1 个答案:

答案 0 :(得分:0)

首先,您应该了解Oracles IN子句限制(SQL IN Clause 1000 item limit)。因此,如果将大in拆分为较小的{{p}},则可以避免这种情况

select id from my_table where id in ('1','2','3') or id in ('4','5'...)

或在Oracle中运行多个请求

select id from my_table where id in ('1','2','3');
select id from my_table where id in ('4','5'...);

或还有其他可能性(见相关问题)。