oracle SQL递归的使用详解

 更新时间:2013年05月30日 10:10:05   作者:  
本篇文章是对oracle SQL递归的使用进行了详细的分析介绍,需要的朋友参考下
oracle数据库中如果需要使用SQL递归语句,应该怎么写呢?下面就为您介绍一个oracle中使用SQL递归语句的例子,供您参考。
例子:
复制代码 代码如下:

pid  id
  a   b  
  a   c    
  a   e  
  b   b1  
  b   b2  
  c   c1  
  e   e1  
  e   e3  
  d   d1  

指定pid=a,选出  
  a   b  
  a   c    
  a   e  
  b   b1  
  b   b2  
  c   c1  
  e   e1  
  e   e3 
SQL语句:select   parent,child   from   test   start   with   pid='a'  
connect   by   prior   id=pid

Oracle  SQL递归查询语句:
1、表机构
复制代码 代码如下:

SQL> desc comm_org_subjection
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------
 ORG_SUBJECTION_ID                         NOT NULL VARCHAR2(32)   子键
 ORG_ID                                    NOT NULL VARCHAR2(32)
 FATHER_ORG_ID                             NOT NULL VARCHAR2(32)   父键
 LOCKED_IF                                 NOT NULL VARCHAR2(1)
 START_DATE                                NOT NULL DATE
 END_DATE                                           DATE
 EDITION_NAMEPLATE                                  NUMBER(8)
 CODE_AFFORD_IF                                     VARCHAR2(1)
 CODE_AFFORD_ORG_ID                        NOT NULL VARCHAR2(32)
 CODING_SHOW_ID                                     NUMBER(8)
 BSFLAG                                             VARCHAR2(1)
 MODIFI_DATE                                        DATE
 CREATOR_ID                                         VARCHAR2(32)
 CREATE_DATE                                        DATE
 CREATOR                                            VARCHAR2(35)

2、递归查找父结点 org_id为C6000000000001下的所有子结点:
复制代码 代码如下:

select * from comm_org_subjection a
start with a.org_id='C6000000000001'
connect by prior a.org_subjection_id=a.father_org_id

3、递归查找子结点 org_id为C6000000000001下的所有父结点:
复制代码 代码如下:

select org_id from comm_org_subjection a
start with a.org_id='C6000000000001'
connect by prior a.father_org_id=a.org_subjection_id

相关文章

  • 在命令行下进行Oracle用户解锁的语句

    在命令行下进行Oracle用户解锁的语句

    Oracle用户解锁操作并没您想象的那么复杂,这里通过在命令行下的操作轻松帮您完成Oracle用户解锁
    2013-06-06
  • oracle不能使用EM怎么办 oracle11g如何正确安装配置EM

    oracle不能使用EM怎么办 oracle11g如何正确安装配置EM

    这篇文章主要为大家详细介绍了oracle不能使用EM的解决方法,oracle11g如何正确安装配置EM,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Oracle导入导出数据的几种方式

    Oracle导入导出数据的几种方式

    今天小编就为大家分享一篇关于Oracle导入导出数据的几种方式,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • Oracle  call 和 exec的详解及区别

    Oracle call 和 exec的详解及区别

    这篇文章主要介绍了Oracle call 和 exec的详解及区别的相关资料,这里举例说明了它们之间的区别,需要的朋友可以参考下
    2016-11-11
  • PL/SQL 日期时间类型函数及运算

    PL/SQL 日期时间类型函数及运算

    PL/SQL 日期时间类型函数及运算...
    2007-03-03
  • oracle数据库tns配置方法详解

    oracle数据库tns配置方法详解

    TNS是Oracle Net的一部分,专门用来管理和配置Oracle数据库和客户端连接的一个工具,在大多数情况下客户端和数据库要通讯,必须配置TNS,下面看一如何配置它吧
    2013-12-12
  • Oracle中declare的使用及说明

    Oracle中declare的使用及说明

    这篇文章主要介绍了Oracle中declare的使用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Oracle SQL Developer脚本输出中文显示乱码的解决方法

    Oracle SQL Developer脚本输出中文显示乱码的解决方法

    我们在测试Oracle Select AI(自然语言查询数据库)时,发现Run Statement中文显示正常,而Run Script中文显示乱码,所以本文给大家介绍了Oracle SQL Developer脚本输出中文显示乱码的解决方法,需要的朋友可以参考下
    2024-05-05
  • Oracle ORA-00257: 归档程序错误解决办法

    Oracle ORA-00257: 归档程序错误解决办法

    今天发现oracle数据库连不上,报错:ORA-00257:归档程序错误,在释放之前仅限于内部连接 马上联想到可能是空间满了,一看磁盘目录果然,这篇文章主要给大家介绍了关于Oracle ORA-00257:归档程序错误的解决办法,需要的朋友可以参考下
    2024-04-04
  • 浅谈Oracle 11g 发行版2 新安装后关于登录的一些基本操作

    浅谈Oracle 11g 发行版2 新安装后关于登录的一些基本操作

    oracle 11g的两个不同版本。11g刚发行时,是11g第一版,简称11.1,现在有个11g第二版,在功能上有了更多的改进,简称11.2。本文给大家介绍Oracle 11g 发行版2 新安装后关于登录的一些基本操作,需要的朋友可以参考下
    2015-10-10

最新评论