在你的数据库中执行:
$oracle_home\rdbms\admin\scott.sql
然后用scott/tiger登陆到sqlplus中,分别执行:SELECT SYS_CONNECT_BY_PATH(ename, '>') "Path" 
FROM scott.emp 
START WITH ename = 'KING' 
CONNECT BY PRIOR empno = mgr; 
SELECT ename
FROM scott.emp 
START WITH ename = 'KING' 
CONNECT BY PRIOR empno = mgr; 看到了什么结果?
其实SYS_CONNECT_BY_PATH这个函数是oracle9i才新提出来的!
它一定要和connect by子句合用!
第一个参数是形成树形式的字段,第二个参数是父级和其子级分隔显示用的分隔符!说白了这个函数的作用就是为你清楚的构建出树结构的查询结果。
以上是我的个人看法,和解释,给你些官方说明:
http://www.lc.leidenuniv.nl/awcourse/oracle/server.920/a96540/functions121a.htm有什么问题,我们共同探讨!

解决方案 »

  1.   

    谢谢了,但是我对connect by的用法不是很清楚,好像是连接的作用,但是需要的条件就不明白了,能再解释一下connect by 的用法吗?谢谢了!!
      

  2.   

    SELECT SYS_CONNECT_BY_PATH(ename, '>') "Path" 
    FROM scott.emp 
    START WITH ename = 'KING' 
    CONNECT BY PRIOR empno = mgr; 
    以这个为例:
    START WITH 代表你要开始遍历的的节点,
    CONNECT BY PRIOR 是标示父子关系的对应!
    这个说起来很难,你多试试就会发现很简单了!