易截截图软件、单文件、免安装、纯绿色、仅160KB

oracle中connect by prior实现递归查询

收集的几条在oracle中通过connect by prior来实现递归查询
Start with...Connect By子句递归查询一般用于一个表维护树形结构的应用。
创建示例表:
CREATE TABLE TBL_TEST
(
ID    NUMBER,
NAME VARCHAR2(100 BYTE),
PID   NUMBER                                  DEFAULT 0
);
插入测试数据:
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('1','10','0');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('2','11','1');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('3','20','0');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('4','12','1');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('5','121','2');
从Root往树末梢递归
select * from TBL_TEST
start with id=1
connect by prior id = pid
从末梢往树ROOT递归
select * from TBL_TEST
start with id=5
connect by prior pid = id
===============================================================================================================
有一张表   t 
字段: 
parent 
child 
两个字段的关系是父子关系 
  
写一个sql语句,查询出指定父下面的所有的子 
  
比如 
  
a   b 
a   c   
a   e 
b   b1 
b   b2 
c   c1 
e   e1 
e   e3 
d   d1 
  
指定parent=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   parent='a' 
connect   by   prior   child=p


相关文档:

Oracle的SQL*PLUS命令的使用大全

 Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus命令与sql*plus语句。
  
  我们通常所说的DML、DDL、DCL语句都是sql*plus语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer中的sql 语句进 ......

Oracle所有版本汇总

找到一个介绍oracle版本的文章。
http://wapedia.mobi/en/Oracle_Database#3. 
■1979: Larry Ellison and friends founded Software Development Laboratories. 
■1979: SDL changed its company-name to "Relational Software, Inc." (RSI) and introduced its product Oracle V2 as an early commercially ......

一个修改Oracle用户密码的小诀窍

 数据库版本:9.2.0.5
  有时候我们可能不知道一个用户的密码,但是又需要以这个用户做一些操作,又不能去修改掉这个用户的密码,这个时候,就可以利用一些小窍门,来完成操作。
  具体操作过程如下:
  SQL*Plus: Release 9.2.0.5.0 - Production on 星期日 11月 21 13:32:34 2004
  Copyright (c) 1982, ......

ORACLE常用FAQ

 第一部分、SQL&PL/SQL
[Q]怎么样查询特殊字符,如通配符%与_
[A]select * from table where name like 'A_%' escape ''
[Q]如何插入单引号到数据库表中
[A]可以用ASCII码处理,其它特殊字符如&也一样,如
insert into t values('i'||chr(39)||'m'); -- chr(39)代表字符'
或者用两个单引号表示一个
or ......

oracle 恢复表到以前的某个状态

 select * from sys.smon_scn_time;
--scn 与时间的对应关系
每隔5分钟,系统产生一次系统时间标记与scn的匹配并存入sys.smon_scn_time表。
select * from student as of scn 592258
就可以看到在这个检查点的表的历史情况。
然后我们恢复到这个检查点
insert into student  select * from student a ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号