Oracle存储过程 树状结构的存储与展示

简介: 树状结构的存储与展示  drop table article;    create table article  (    id number primary key,    cont varchar2(4000),    pid number,    isleaf number(1),  --0 代表非叶子节点,1代表叶子
树状结构的存储与展示
 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);
 commit;
 
 蚂蚁大战大象
     大象被打趴下了
             蚂蚁也不好过
       瞎说
  没有瞎说
     大象进医院了
         护士是蚂蚁
     怎么可能
     怎么没有可能
     可能性事很大的
 
 使用存储过程:
 create or replace proedure 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;
 
 set serveroutput on;
 exec p(0,0);
目录
相关文章
|
2月前
|
存储 SQL 关系型数据库
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】(2)
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】
|
2月前
|
存储 SQL 关系型数据库
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】(1)
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】
|
3月前
|
SQL 存储 Oracle
一篇文章带你学会 Oracle 存储过程的基本介绍和高阶用法(上)
一篇文章带你学会 Oracle 存储过程的基本介绍和高阶用法
|
8天前
|
Oracle 关系型数据库 BI
ORACLE Apex: EBS多组织结构 理解与配置
【8月更文挑战第11天】在Oracle Apex中理解和配置与EBS多组织结构相关内容需掌握:1) EBS多组织结构概念及组成部分,如法律实体、业务单位与库存组织;2) Oracle Apex与EBS集成的目的与方式,包括提供友好界面及自定义业务流程;3) 在Apex中配置多组织结构应用,涉及数据访问控制、页面报表设计及业务流程集成。整体而言,需精通EBS架构与Apex开发技术,以实现高效灵活的企业解决方案。
|
2月前
|
存储 SQL 关系型数据库
MySQL存储过程和存储函数的使用
MySQL的存储过程和存储函数在功能和用法上有明显的区别。存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,通过指定名称和参数(如果有)来调用执行,可以返回多个值或结果集,但不直接返回值。而存储函数则是一个有返回值的特殊存储过程,它返回一个值或表对象,可以直接嵌入SQL语句中使用,如SELECT语句中。两者都是为了提高SQL代码的重用性和性能,但使用场景和方式有所不同。
184 4
|
2月前
|
存储 SQL 关系型数据库
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】(3)
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】
|
2月前
|
存储
Cloudstack启动实例模板从二级存储复制到主存储过程
Cloudstack启动实例模板从二级存储复制到主存储过程
10 0
|
2月前
|
存储 关系型数据库 MySQL
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】(4)
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】
|
3月前
|
存储 编解码 算法
图片文件在计算机存储设备上的存储过程
图片文件在计算机存储设备上的存储过程
|
2月前
|
存储 SQL Oracle
oracle 存储过程导出sql语句 导出为文件
oracle 存储过程导出sql语句 导出为文件
146 0

推荐镜像

更多