ORACLE CONNECT BY 层次查询

迁移特征 connect_by 的规则事实、精确目标横向结论与可执行验证路径。产品家族相似性不作为精确版本结论的依据。

professionalcriticalhighora.syntax.connect_by

场景说明

该场景属于“查询与 DML 语法”,适用于 sql、mybatis、plsql。权威状态:可进入权威统计。

正向识别示例

以下均来自规则库中 should_hit=true 的合成公开示例,不是客户代码。

SELECT ename, LEVEL FROM emp START WITH mgr IS NULL CONNECT BY PRIOR empno = mgr
SELECT * FROM t CONNECT BY NOCYCLE PRIOR id = parent_id

21 个精确目标版本 / 模式

目标支持度证据等级公开边界深入核对
达梦 DM8fulldoc_based未登记额外公开说明,按来源与验证步骤复核。
GaussDB 505(ORA 模式)partialartifact_verified未登记额外公开说明,按来源与验证步骤复核。改造点 · 真机工件
GoldenDB V6partialartifact_verified本批仅证明 SELECT MAX(LEVEL) FROM DUAL CONNECT BY LEVEL <= 3 的结果语义;业务表层次关系、PRIOR 方向、NOCYCLE、伪列与排序未覆盖,不能据此自动改写,本结论不超过 partial。改造点 · 真机工件
瀚高 HGDB 4.5fulldoc_based未登记额外公开说明,按来源与验证步骤复核。
人大金仓 KingbaseES V8fulldoc_based未登记额外公开说明,按来源与验证步骤复核。
OceanBase 4.2.5 MySQL 模式nonedoc_based未登记额外公开说明,按来源与验证步骤复核。改造点
OceanBase 4.2.5 Oracle 模式fulldoc_based未登记额外公开说明,按来源与验证步骤复核。
OceanBase 4.3.5 MySQL 模式nonedoc_based未登记额外公开说明,按来源与验证步骤复核。改造点
OceanBase 4.3.5 Oracle 模式fulldoc_based未登记额外公开说明,按来源与验证步骤复核。
openGauss 5.0 A 模式partialdoc_based未登记额外公开说明,按来源与验证步骤复核。改造点
openGauss 6.0 A 模式fullversion_observed未登记额外公开说明,按来源与验证步骤复核。
PolarDB(Oracle 兼容)2.0fulldoc_based未登记额外公开说明,按来源与验证步骤复核。
PostgreSQL 16 + orafce 4.16nonedoc_based未登记额外公开说明,按来源与验证步骤复核。改造点
PostgreSQL 16nonedoc_based未登记额外公开说明,按来源与验证步骤复核。改造点
神通数据库 7fulldoc_based未登记额外公开说明,按来源与验证步骤复核。
展开 6 个 unknown / undeclared 结论
GBase 8sunknownunverified当前事实源不足,不推断兼容。
openGauss 6.0 B 模式(Dolphin)unknownunverified当前事实源不足,不推断兼容。
磐维 PanWeiDB 2.0unknownunverified当前事实源不足,不推断兼容。
磐维 PanWeiDB 3.0 A 模式unknownunverified当前事实源不足,不推断兼容。
TDSQL Boundlessunknownunverified当前事实源不足,不推断兼容。
TiDB 8.5unknownunverified当前事实源不足,不推断兼容。

改造与验证路径

推荐方向

case_by_case · 目标不保留原生层次句时改 WITH RECURSIVE,并先保留 Oracle 执行序:FROM/WHERE 中的 join 先形成候选关系,START WITH 与 CONNECT BY/PRIOR 再展开层次,剩余 WHERE 最后逐行过滤,不能提前裁掉不满足 WHERE 的父行及其仍应返回的子孙。锚点/递归成员生成 depth/path/visited,visited 必须使用稳定行身份与路径实例,不能用可重复业务键。NOCYCLE 在下一子行已是祖先时停止该边;CONNECT_BY_ISCYCLE 标记“当前行存在一个祖先子行”,不是标记或输出重复子行

库侧

目标支持 CONNECT BY 时保留原句并真库验证;否则以 join 结果作递归输入、WITH RECURSIVE 展开后在外层应用剩余 WHERE · 风险 review

应用侧

应用 SQL 改写 WITH RECURSIVE(LEVEL/PRIOR/NOCYCLE 逐项映射)并回归调用链 · 风险 review

验收步骤

比对多根、孤儿、叶子、重复业务键和稳定行身份;用“不满足剩余 WHERE 的父行仍有满足条件子行”验证过滤时点;注入自环/多节点环,逐行比对 NOCYCLE 与 CONNECT_BY_ISCYCLE,并测试深链递归上限;建议 PoC 复核结果、环路、排序和递归资源上限

公开来源