我正在编写java程序,其中我需要比较大量的List<String> ids,以查看这些ids是否存在于数据库中?我知道这可以用大的select查询select id from my_table where id in ('1','2''3''4''5'...)来完成,这导致了非常大的sql查询。
在Oracle 11g中有没有其他方法来实现这一点?
谢谢
发布于 2014-03-06 15:38:06
首先,您应该了解Oracle IN子句限制(SQL IN Clause 1000 item limit)。因此,如果您将较大的in拆分为较小的几个,就可以避免这种情况
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'...);或者还有其他可能性(参见链接问题)。
https://stackoverflow.com/questions/22217805
复制相似问题