`

oracle关于树形节点处理

阅读更多
create table automobiles(
       part_id number(5) constraint pk_auto_part_id primary key,
       parent_id number(5) constraint fk_auto_ppid_ references  automobiles(part_id),
       part_cname varchar2(30) not null,
       part_ename varchar2(30) not null,
       mp_cost number(9,2),
       desribe varchar2(20)    
);
--插入数据
insert into automobiles values( 1,1,'汽车','mobile',84321.99,'Assembly');
insert into automobiles values( 2,1,'车身','bodywork',19892.99,'Manufacture');
insert into automobiles values( 3,1,'发送机','engine',42128,'Purchase');
insert into automobiles values( 4,1,'附件','attached',15212,'Assembly');
insert into automobiles values( 5,2,'保险杠','bumper',4812.95,'Purchase');
insert into automobiles values( 6,2,'底盘','chassis',12795.11,'Manufacture');
insert into automobiles values( 7,2,'行李箱','Boot',812.11,'Manufacture');
insert into automobiles values( 8,6,'车轮','Wheel',2062.2,'Manufacture');
insert into automobiles values( 9,6,'挡泥板','Mudguard',990,'Manufacture');
insert into automobiles values( 10,8,'轮胎','Tyre',300,'Purchase');
insert into automobiles values( 11,3,'发送机盘','Bonnet',3212,'Manufacture');
insert into automobiles values( 12,3,'活塞','Piston',1112.2,'Manufacture');
insert into automobiles values( 13,3,'汽化器','Carburetter',712.29,'Manufacture');
insert into automobiles values( 14,4,'变速器','Gearbox',5712.25,'Manufacture');
insert into automobiles values( 15,4,'仪表板','Dashboard',538.92,'Manufacture');
insert into automobiles values( 16,14,'制动器','Carburetter',712.29,'Manufacture');
insert into automobiles values( 17,14,'变速杆','Gearshift',2001,'Manufacture');
insert into automobiles values( 18,17,'传动轴','Shaft',1101,'Manufacture');
insert into automobiles values( 19,15,'里程表','Milometer',350.28,'Purchase');
--分层显示当一级目录的父节点不为空时容易出现loop循环找parent_id就找不到了
--解决办法加上nocycle就可以了,或者把你的数据1,1--〉改为1,null
select level,part_id,parent_id,part_cname,part_ename,mp_cost,desribe
from automobiles
start with part_id=1
connect by nocycle prior part_id=parent_id
order by level;
--缩进显示节点
select level,
    lpad('  ',2*level-1)||part_cname||' '||part_ename as partName
from automobiles
start with part_id=1
connect by nocycle prior part_id=parent_id
order by level;
分享到:
评论

相关推荐

    Oracle递归树形结构查询功能

    Oracle数据库在处理树形结构数据时提供了强大的递归查询功能,这种特性对于组织结构、产品分类、层级菜单等场景的应用非常广泛。递归树形结构查询主要依赖于`CONNECT BY`和`PRIOR`关键字,它们允许我们构建复杂的...

    Oracle查询树形结构

    Oracle 查询树形结构 Oracle 查询树形结构是一种特殊的查询方式,它可以将树形结构的数据从 Oracle 数据库中检索出来。这种结构广泛应用于各种应用系统中,例如管理系统、文件系统、组织结构等。 在 Oracle 中,...

    Ajax+jsp+oracle实现动态树形菜单

    在这个项目中,Oracle用于存储树形菜单的数据结构,如父节点ID、子节点列表等。JSP通过SQL查询语句从数据库中检索菜单项,并根据需要返回给前端。 **动态树形菜单的实现**: 1. **数据结构设计**:首先,需要在...

    【原创】oracle树形结构查询,层次查询,hierarical retrival

    Oracle树形结构查询,层次查询,hierarchical retrieval Oracle中的树形结构查询,也被称为层次查询或hierarchical retrieval,是一种获取树形结构数据的方法。这种方法可以将数据组织成树形结构,具有层次关系的...

    oracle树形结构,结合dtree插件使用显示树状结构菜单

    总结来说,Oracle树形结构结合dtree插件能够帮助开发者有效地展示和操作层次化数据,这对于那些需要直观呈现层级关系的应用场景非常有用。在实际项目中,理解如何使用Oracle的层次查询和dtree插件的配置至关重要,这...

    Java与Oracle实现的树形菜单

    4. **Tree数据结构**:树形菜单的本质就是一种树数据结构的可视化表示,其中每个节点代表菜单项,可以有子节点表示下级菜单。在Java中,可以使用自定义类来表示菜单节点,包含标题、链接、是否有子节点等属性,并...

    Oracle树查询及相关函数

    Oracle树查询是数据库管理中一种非常实用的技术,它允许我们处理具有层级关系的数据。在Oracle中,树查询主要依赖于`SELECT...START WITH...CONNECT BY...PRIOR`语法,这个语法让我们能够按照层级结构遍历数据。本文...

    Excel树形结构数据导入Oracle数据库(Java)

    这篇博客“Excel树形结构数据导入Oracle数据库”提供了一个解决方案,下面将详细解析这个过程。 首先,我们需要理解Excel数据的树形结构。在Excel中,数据可能以层次化的形式存在,比如一级分类、二级分类等,形成...

    sql树形数据处理示例(Jet wang 最新整理)

    以下是对SQL树形数据处理的一些关键知识点的详细说明: 1. **递归查询**: SQL中的递归查询是处理树形数据的核心方法。通过自连接,我们可以遍历层级关系。例如,使用`WITH RECURSIVE`语句(在PostgreSQL、MySQL ...

    Oracle中树的操作

    在Oracle数据库管理中,处理树形结构数据是一项常见需求。本文将详细介绍如何通过PL/SQL过程实现在Oracle数据库中复制树状节点,并将其作为一个新的树节点进行插入。 #### 1. 创建树形表结构 首先,我们需要创建一...

    oracle树查询

    ### Oracle树查询详解 在Oracle数据库中,进行树状结构数据查询时,通常会使用到特定的查询语法,包括`START WITH`、`CONNECT BY PRIOR`等关键字。本文将详细介绍这些关键字及其应用场景,并通过具体示例来帮助理解...

    Oracle SQL树形结构查询

    Oracle SQL树形结构查询是一种在数据库中处理层级数据的有效方法,特别是在具有层级关系的数据表中,如组织架构、部门树或文件系统等。Oracle SQL 提供了 `START WITH...CONNECT BY PRIOR` 语句来实现递归查询,使得...

    Oracle树查询总结

    Oracle 数据库在处理树形数据结构时,提供了一种强大的查询方法,即 `SELECT...START WITH...CONNECT BY...PRIOR` 语法。这种查询模式允许我们以递归方式遍历和检索具有层级关系的数据,例如组织结构、产品分类或者...

    Oracle通过递归查询父子兄弟节点方法示例

    在Oracle数据库中,递归查询是一种强大的工具,用于处理层级数据结构,如组织结构、文件系统或树形关系。在本篇文章中,我们将探讨如何利用递归查询来查找父子兄弟节点,这对于理解和处理这类关系非常关键。 首先,...

    Oracle中的树状查询(递归查询)

    Oracle数据库系统在处理层次数据或树形结构时,提供了强大的工具——递归查询。递归查询允许我们在数据表中处理嵌套级别的数据,这在权限查询、组织结构、产品分类等场景中尤其常见。本文将深入探讨Oracle中的树状...

    oracle form tree步骤

    树形控件还可以配合按钮或其他控件,实现节点的添加、删除、编辑等功能,这通常需要编写额外的PL/SQL代码来处理用户交互。 10. 错误处理和调试: 在开发过程中,确保添加适当的错误处理代码,并使用Form的调试...

    Web树形级联菜单,连接oracle,嵌套ajax

    在本项目中,当用户点击树形菜单的某个节点时,触发Ajax异步请求,向服务器发送请求以获取该节点的子节点数据。JavaScript负责处理这个请求,解析返回的数据,并动态地在DOM中添加新的菜单项,实现无刷新的用户体验...

Global site tag (gtag.js) - Google Analytics