好象不需要用PL/SQL就可以,试试下面的SQL:
select stc_id,stc_name from 表A
order by parentid

解决方案 »

  1.   

    不必如此,一个查询语句就可以完成树状查询
    select * from your_table start with stc_parentid='0' connect by prior stc_id=stc_parentid;
      

  2.   

    盼望black_dragon(半仙)大哥回答.
      

  3.   

    给你个例子:
    select * from em1_org_area start with parent_code='000000000000'
    connect by prior area_code=parent_code;AREA_CODE    AREA_NAME                                          LEV_ID PARENT_CODE 
    ------------ -------------------------------------------------- ------ ------------
    001000000000 中国                                                    1 000000000000
    001001000000 中北区                                                  2 001000000000
    001001001000 河北                                                    3 001001000000
    001001001001 秦皇岛                                                  4 001001001000
    001001001002 石家庄                                                  4 001001001000
    001002000000 中南区                                                  2 001000000000
    001002001000 湖北                                                    3 001002000000
    001002001001 武汉                                                    4 001002001000
    001002002000 湖南                                                    3 001002000000
    001002002001 长沙                                                    4 001002002000
    001002002002 湘潭                                                    4 001002002000
    001002003000 广东                                                    3 001002000000
    001003000000 东北                                                    2 001000000000
    001003002000 辽宁                                                    3 001003000000
    001003001000 黑龙江                                                  3 001003000000
    001003005000 吉林                                                    3 00100300000016 rows selected
      

  4.   

    要用递归这样的办法,代码简单。
    PL/SQL恐怕不行,它只能返回按树型顺序排列的结果集,不能直接显示成树状结构。