Oracle数据库 树状结构的存储与展现

--创建数据库

drop table article;

create table article
(
id number primary key,
cont varchar2(4000),
pid number,
isleaf number(1), --0代表非叶子节点,1代表叶子节点
alevel number(2)
);

 

--插入初始化数据

insert into article values (1, '蚂蚁大战大象', 0, 0, 0);
insert into article values (2, '大象被打趴下了', 1, 0, 1);
insert into article values (3, '蚂蚁也不好过', 2, 1, 2);
insert into article values (4, '瞎说', 2, 0, 2);
insert into article values (5, '没有瞎说', 4, 1, 3);
insert into article values (6, '怎么可能', 1, 0, 1);
insert into article values (7, '怎么不可能', 6, 1, 2);
insert into article values (8, '可能性很大的', 6, 1, 2);
insert into article values (9, '大家进医院了', 2, 0, 2);
insert into article values (10, '护士是蚂蚁', 9, 1, 3);

--展现树状结构的存储过程
create or replace procedure p (v_pid article.pid%type, v_level binary_integer) is
 cursor c is select * from article where pid = v_pid;
 v_preStr varchar2(1024) := '';
begin
 for i in 1..v_level loop
  v_preStr := v_preStr || '----';
 end loop;
 for v_article in c loop
  dbms_output.put_line(v_preStr || v_article.cont);
  if(v_article.isleaf = 0) then
   p (v_article.id, v_level + 1);
  end if;
 end loop;
end;

 

--最终效果


蚂蚁大战大象
     大象被打趴下了
          蚂蚁也不好过
          瞎说
               没有瞎说
         大家进医院了
               护士是蚂蚁
     怎么可能
         怎么不可能
         可能性很大的

 

注:1、以上为《尚学堂Oracle视频教程》的一部分内容

        2、转载请注明:http://blog.csdn.net/gunner086

谢谢合作!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值