Oracle 10 是否支持短路评估查询?如果是的话,有一些特殊的钥匙可以使用吗?
问问题
310 次
2 回答
5
于 2013-01-14T09:48:53.130 回答
3
我见过 Oracle 做的唯一短路与 NVL 与 COALESCE 有关。
SELECT NVL(1,1/0) FROM DUAL
SELECT COALESCE(1,1/0) FROM DUAL
NVL 评估双方并引发错误,合并不会。
它看起来也decode
正在做同样的事情:
SELECT decode(1,1,9,2,1/0) FROM DUAL
它不评估第二部分,因此避免引发错误。
在 SQL Server 优化器上,我知道查询引擎可以重写这类语句并导致这样的短路示例出现问题,因此作为一般规则 - 你永远不应该依赖逻辑中的短路 - 我不知道是否这同样适用于甲骨文——我怀疑它会的。
于 2013-01-14T09:50:54.157 回答