我正在编写java程序,我需要在其中比较大量的List<String> ids
,看看这些ID是否存在于数据库中?我知道可以通过大选择查询select id from my_table where id in ('1','2''3''4''5'...)
完成,这会导致非常大的SQL查询。
在Oracle 11g中有没有其他方法可以做到这一点?
由于
答案 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'...);
或还有其他可能性(见相关问题)。