zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    不能成为专业软件测试人员的10大理由
    不能成为专业软件测试人员的10大理由
    团队建设三境界
    团队建设三境界
    团队建设三境界
    界面测试总结
    界面测试总结
    codevs 1220 数字三角形
    codevs 1214 线段覆盖
    codevs 2181 田忌赛马
  • 原文地址:https://www.cnblogs.com/yanchuanblog/p/3985708.html
Copyright © 2011-2022 走看看