Viv*_*wal 6 oracle oracle10g oracle11g
Oracle IN子句对静态数据的限制为1000,但它接受来自子查询的无限数据.为什么?
这是对任何表达式列表的限制:
逗号分隔的表达式列表可以包含不超过1000个表达式.
为什么1000?据推测,实现需要某种限制,这似乎绰绰有余.在几十年前设定该限制时,可能存在,或者肯定可能是限制的性能原因,特别IN是OR在这种情况下由优化器转换为多个语句(如果你看一下,你可以看到)执行计划).
我很难想出一个合理的场景,需要靠近它,固定值无法从其他数据中作为子查询得出.
我怀疑它与逻辑数据库限制有些相关,例如,表示表中的列不能超过1000列; 由于在insert语句中使用表达式列表来列出要插入的列和值,因此表达式列表必须能够匹配,但可能没有理由超过它.
当然猜测......如果没有看到软件的内部结构,你就不可能获得明确的答案.
| 归档时间: |
|
| 查看次数: |
18924 次 |
| 最近记录: |