ORACLE 遞迴查詢

mahe0207發表於2014-03-21
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 --&gt from --&gt where --&gt start with --&gt connect by --&gt order by
   子句的執行順序 from --&gt start with --&gt connect by --&gt where --&gt select --&gt 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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章