• Oracle “CONNECT BY” 使用


    Oracle “CONNECT BY” 使用

    功能说明:

    语法结构如下:

    [ START WITH condition ]
    CONNECT BY [ NOCYCLE ] condition

    说明: 
    1. START WITH:告诉系统以哪个节点作为根结点开始查找并构造结果集,该节点即为返回记录中的最高节点。 
    2. 当分层查询中存在上下层互为父子节点的情况时,会返回ORA-01436错误。此时,需要在connect by后面加上NOCYCLE关键字。同时,可用connect_by_iscycle伪列定位出存在互为父子循环的具体节点。 connect_by_iscycle必须要跟关键字NOCYCLE结合起来使用

    注意:当在9i环境下加上NOCYCLE参数会报如下错误:

    ORA-00920: 无效的关系运算符

    出现此问题原因是9i不支持NOCYCLE参数。

    在Oracle 10g 之前的版本中,如果在你的树中出现了环状循环(如一个孩子节点引用一个父亲节点), Oracle 就会报出一个错误提示:“ ORA-01436: CONNECT BY loop in user data”。如果不删掉对父亲的引用就无法执行查询操作。 而在 Oracle 10g 中,只要指定“NOCYCLE”就可以进行任意的查询操作。与这个关键字相关的还有一个伪列——CONNECT_BY_ISCYCLE, 如果在当前行中引用了某个父亲节点的内容并在树中出现了循环,那么该行的伪列中就会显示“1”,否则就显示“0”。

    --此处修改由于9i不支持nocycle

  • 相关阅读:
    mysql分表+查询
    mysql 数据库 分表后 怎么进行分页查询?Mysql分库分表方案?
    mysql 索引失效的情况
    mysql 索引 最左前缀原则
    redis同时操作多个key set get del 呢?mset mget pipeline
    mysql唯一索引和普通索引的选择和区别
    那些php面试官的问题
    php快速排序
    PHP抽象类与接口的区别
    php session
  • 原文地址:https://www.cnblogs.com/yanchuanblog/p/3985708.html
Copyright © 2020-2023  润新知