【发布时间】:2016-09-19 23:31:44
【问题描述】:
SO 充满了变通方法,但我想知道 IN 子句中“最大表达式数”限制为 1000 背后的历史原因?
【问题讨论】:
-
对于一个好的设计来说,1000 的限制本身就很大。实际上,您不会达到极限。无论如何,我已经在我的回答中进一步解释了。
-
我猜答案与语法和解析有关。也许它们是如何在 30 年前实施的。很高兴看到理论计算机科学对此的回答!
-
人们可以合理地问,为什么这个数字如此之高?
-
我认为 Oracle 在 DB 技术方面已经相当老了,这些限制在那时就已经形成,他们再也不必考虑了。所有表达式列表都有 1000 个限制。并且稳健的设计永远不会让用户向 Oracle 寻求解释。而汤姆关于解析的回答总是让我认为当时在 70 年代或 80 年代的所有这些限制目的更多的是计算问题。基于 C 的算法可能需要一些限制,Oracle 提供了 1000 个
-
我不同意这些限制很高并且可以接受。语言应该允许任意表达或表达组合。一种语言不应该设置随机限制,并且在大多数情况下,Oracle SQL 不设置随机限制。 compound expressions没有限制,expression lists为什么要限制?这个问题总是出现;此功能是一个错误,即使它不是什么大问题。
标签: oracle