奇怪的查询行为 oracle 11g

Posted

技术标签:

【中文标题】奇怪的查询行为 oracle 11g【英文标题】:Strange query behavior oracle 11g 【发布时间】:2013-07-29 10:51:22 【问题描述】:

我有一个查询:

SELECT ps_node_id,name 
FROM cz_ps_nodes WHERE cz_ps_nodes.ps_node_type=261
START WITH NAME = 'Bundle Rule Repository',cz_ps_nodes.devl_project_id = P_devl_project_id AND cz_ps_nodes.deleted_flag = 0
CONNECT BY PRIOR ps_node_id = parent_id.

此查询有效。 但是,如果我只是从选择部分中删除名称,例如:

SELECT ps_node_id
FROM cz_ps_nodes WHERE cz_ps_nodes.ps_node_type = 261                       
START WITH NAME = 'Bundle Rule Repository',cz_ps_nodes.devl_project_id = P_devl_project_id AND cz_ps_nodes.deleted_flag = 0                                         
CONNECT BY PRIOR ps_node_id = parent_id.

查询只是挂起,但在 oracle 10g 上运行,当我们升级到 oracle 11g 时问题就开始了。 谁能解释一下原因?

【问题讨论】:

11g的哪个版本和补丁级别?有一些关于性能的错误。如果您已修补,那么您可能需要向 Oracle 提出服务请求以进行调查。 PL/SQL 版本是 11.1.0.7.0 【参考方案1】:

通过使用解决了问题:alter session set optimizer_features_enable='10.2.0.4' –

【讨论】:

以上是关于奇怪的查询行为 oracle 11g的主要内容,如果未能解决你的问题,请参考以下文章

Oracle“插入”命令的奇怪行为

存在唯一索引时,Oracle 10g 和 11g 之间 REF CURSOR 的行为不同?

深入解析:Oracle由11g而始的数据库一致读行为的改变

Oracle sql 终止符筛选(+奇怪的行为)

sql查询行为奇怪

Firebase 查询结果 SWIFT 的奇怪行为