1. create table t_task ( 
  2. task_id  number(11) primary key
  3. task_name  varchar2(20), 
  4. parent_task_id number(11) 
  5. insert into t_task (task_id,task_name,parent_task_id) values(000001,'t1',-1); 
  6. insert into t_task (task_id,task_name,parent_task_id) values(000002,'t11',000001);  
  7. insert into t_task (task_id,task_name,parent_task_id) values(000003,'t2',000001);  
  8. insert into t_task (task_id,task_name,parent_task_id) values(000004,'t111',000002);  
  9. insert into t_task (task_id,task_name,parent_task_id) values(000005,'t1111',000003);  
  10. insert into t_task (task_id,task_name,parent_task_id) values(000006,'t121',000005);  
  11. insert into t_task (task_id,task_name,parent_task_id) values(000007,'t1211',000006); 
  12.  
  13.  
  14. select * from t_task; 
  15.  
  16. --查询所有有关联的数据 
  17. select t.task_id, t.task_name, t.parent_task_id 
  18.   from t_task t 
  19.  start with task_id = 3 
  20. connect by prior task_id = parent_task_id; 
  21.  
  22. --查询所有父节点数据包含自身 
  23. select * from t_task start with task_id=3 connect by prior parent_task_id=task_id  ; 
  24.  
  25. --查询所有子节点数据不包含自 
  26. select t.*,level from t_task t start with parent_task_id=3 connect by prior task_id=parent_task_id ;