ITPub博客

首页 > 数据库 > Oracle > ORACLE 递归查询

ORACLE 递归查询

原创 Oracle 作者:mahe0207 时间:2014-03-21 08:38:57 0 删除 编辑
1.当分层查询存在上下层互为父子节点时,会返回ORA-01436错误,此时,需要在connect by后面加上nocycle关键字。
    同时,可用connecct_by_iscycle伪列定位出存在互为父子循环的具体节点。
    connect_by_iscycle必须要跟关键字nocycle结合起来使用
2.伪列含义
    connect_by_root 返回当前节点的最顶端节点
    connect_by_isleaf 判断是否为叶子节点,如果这个节点下面有子节点,则不为叶子节点
    level 节点深度
    sys_connect_by_path 函数显示详细路径,并用/分隔
3.通过connect by 生成序列 select rownum from dual connect by rownum<=10
4.子句的语法书写顺序 select --> from --> where --> start with --> connect by --> order by
   子句的执行顺序 from --> start with --> connect by --> where --> select --> order by
5 connect by prior parent_id=dept_id 表中所有 dept_id 等于当前记录 parent_id 的记录,向树的根节点方向搜索
   connect by parent_id=prior dept_id,所有parent_id等于当前记录dept_id 的记录,向叶子节点搜索

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29437301/viewspace-1126327/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-01-11

  • 博文量
    26
  • 访问量
    94722