第5篇优化Oracle in语句使用限制
发布时间
阅读量:
阅读量
说明:
MySQL:IN 语句中参数个数是不限制的,但是对整个SQL语句的长度有了限制。
8.0之前的版本默认4M,最大可设置为1G
8.0版本之后默认64M,最大可设置1G。(可通过修改 max_allowed_packet 值来修改默认大小
Oracle:IN语句中参数个数有限制:
9i版本,最多256条
10g版本,最多1000条
11g版本,最多1000条
我们在写查询语句,涉及到 IN 或者 NOT IN 的时候,一般都是这样写:
SELECT * FROM user u WHERE u.id IN ('id001', 'id002', 'id003')
但是,对于Oracle而言,IN 或者 NOT IN 语句中数据项个数最大不能超过1000条(9i版本是256条),那么如何优化这种语句呢?
可以这样写包含IN的查询语句:
SELECT * FROM user u WHERE (1, u.id) IN ((1, 'id001'),(1,'id002'
全部评论 (0)
还没有任何评论哟~
