需要写一个存储过程,输入是id,输出是这个id下面子节点id的数组;数据库的表结构是这样子的:
id  name  parent_id
123 猪    12
124 鸡    12
12  禽类  2
2   动物  0比如输入12,输出12,123,124的数组;别的层次比这个例子还要多;请问各位这个存储过程该怎么写?

解决方案 »

  1.   

    SQL> ed
    已写入 file afiedt.buf  1  with tb as(
      2  select 123 id,'猪' name,12 parent_id from dual
      3  union all
      4  select 124 ,'鸡', 12 from dual
      5  union all
      6  select 12,'禽类', 2 from dual
      7  union all
      8  select 2, '动物', 0 from dual)
      9  select id from tb
     10  connect by parent_id=prior id
     11* start with id=12
    SQL> /        ID
    ----------
            12
           123
           124
      

  2.   

    这个不用存储过程的,如楼上,建议研究一下oralce的树型查询,很强大!