<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL%2FHierarchical_Query%2FRoot</id>
		<title>Oracle PL/SQL/Hierarchical Query/Root - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL%2FHierarchical_Query%2FRoot"/>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL/Hierarchical_Query/Root&amp;action=history"/>
		<updated>2026-04-04T09:57:54Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.sqle.ru/index.php?title=Oracle_PL/SQL/Hierarchical_Query/Root&amp;diff=2502&amp;oldid=prev</id>
		<title> в 13:45, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL/Hierarchical_Query/Root&amp;diff=2502&amp;oldid=prev"/>
				<updated>2010-05-26T13:45:19Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 13:45, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.sqle.ru/index.php?title=Oracle_PL/SQL/Hierarchical_Query/Root&amp;diff=2503&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL/Hierarchical_Query/Root&amp;diff=2503&amp;oldid=prev"/>
				<updated>2010-05-26T10:01:46Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Output full path of hierarchy==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table emp&lt;br /&gt;
  2  ( empno      NUMBER(4)    constraint E_PK primary key&lt;br /&gt;
  3  , ename      VARCHAR2(8)&lt;br /&gt;
  4  , init       VARCHAR2(5)&lt;br /&gt;
  5  , job        VARCHAR2(8)&lt;br /&gt;
  6  , mgr        NUMBER(4)&lt;br /&gt;
  7  , bdate      DATE&lt;br /&gt;
  8  , sal        NUMBER(6,2)&lt;br /&gt;
  9  , comm       NUMBER(6,2)&lt;br /&gt;
 10  , deptno     NUMBER(2)    default 10&lt;br /&gt;
 11  ) ;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(1,&amp;quot;Tom&amp;quot;,&amp;quot;N&amp;quot;,   &amp;quot;TRAINER&amp;quot;, 13,date &amp;quot;1965-12-17&amp;quot;,  800 , NULL,  20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(2,&amp;quot;Jack&amp;quot;,&amp;quot;JAM&amp;quot;, &amp;quot;Tester&amp;quot;,6,date &amp;quot;1961-02-20&amp;quot;,  1600, 300,   30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(3,&amp;quot;Wil&amp;quot;,&amp;quot;TF&amp;quot; ,  &amp;quot;Tester&amp;quot;,6,date &amp;quot;1962-02-22&amp;quot;,  1250, 500,   30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(4,&amp;quot;Jane&amp;quot;,&amp;quot;JM&amp;quot;,  &amp;quot;Designer&amp;quot;, 9,date &amp;quot;1967-04-02&amp;quot;,  2975, NULL,  20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(5,&amp;quot;Mary&amp;quot;,&amp;quot;P&amp;quot;,  &amp;quot;Tester&amp;quot;,6,date &amp;quot;1956-09-28&amp;quot;,  1250, 1400,  30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(6,&amp;quot;Black&amp;quot;,&amp;quot;R&amp;quot;,   &amp;quot;Designer&amp;quot;, 9,date &amp;quot;1963-11-01&amp;quot;,  2850, NULL,  30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(7,&amp;quot;Chris&amp;quot;,&amp;quot;AB&amp;quot;,  &amp;quot;Designer&amp;quot;, 9,date &amp;quot;1965-06-09&amp;quot;,  2450, NULL,  10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(8,&amp;quot;Smart&amp;quot;,&amp;quot;SCJ&amp;quot;, &amp;quot;TRAINER&amp;quot;, 4,date &amp;quot;1959-11-26&amp;quot;,  3000, NULL,  20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(9,&amp;quot;Peter&amp;quot;,&amp;quot;CC&amp;quot;,   &amp;quot;Designer&amp;quot;,NULL,date &amp;quot;1952-11-17&amp;quot;,  5000, NULL,  10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(10,&amp;quot;Take&amp;quot;,&amp;quot;JJ&amp;quot;, &amp;quot;Tester&amp;quot;,6,date &amp;quot;1968-09-28&amp;quot;,  1500, 0,     30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(11,&amp;quot;Ana&amp;quot;,&amp;quot;AA&amp;quot;,  &amp;quot;TRAINER&amp;quot;, 8,date &amp;quot;1966-12-30&amp;quot;,  1100, NULL,  20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(12,&amp;quot;Jane&amp;quot;,&amp;quot;R&amp;quot;,   &amp;quot;Manager&amp;quot;,   6,date &amp;quot;1969-12-03&amp;quot;,  800 , NULL,  30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(13,&amp;quot;Fake&amp;quot;,&amp;quot;MG&amp;quot;,   &amp;quot;TRAINER&amp;quot;, 4,date &amp;quot;1959-02-13&amp;quot;,  3000, NULL,  20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(14,&amp;quot;Mike&amp;quot;,&amp;quot;TJA&amp;quot;,&amp;quot;Manager&amp;quot;,   7,date &amp;quot;1962-01-23&amp;quot;,  1300, NULL,  10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; column  full_path format a40&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select  ename&lt;br /&gt;
  2  ,       connect_by_root ename            as Designer&lt;br /&gt;
  3  ,       sys_connect_by_path(ename,&amp;quot; &amp;gt; &amp;quot;) as full_path&lt;br /&gt;
  4  from    emp&lt;br /&gt;
  5  start   with job = &amp;quot;Designer&amp;quot;&lt;br /&gt;
  6  connect by prior empno = mgr;&lt;br /&gt;
ENAME    DESIGNER FULL_PATH&lt;br /&gt;
-------- -------- ----------------------------------------&lt;br /&gt;
Jane     Jane      &amp;gt; Jane&lt;br /&gt;
Smart    Jane      &amp;gt; Jane &amp;gt; Smart&lt;br /&gt;
Ana      Jane      &amp;gt; Jane &amp;gt; Smart &amp;gt; Ana&lt;br /&gt;
Fake     Jane      &amp;gt; Jane &amp;gt; Fake&lt;br /&gt;
Tom      Jane      &amp;gt; Jane &amp;gt; Fake &amp;gt; Tom&lt;br /&gt;
Black    Black     &amp;gt; Black&lt;br /&gt;
Jack     Black     &amp;gt; Black &amp;gt; Jack&lt;br /&gt;
Wil      Black     &amp;gt; Black &amp;gt; Wil&lt;br /&gt;
Mary     Black     &amp;gt; Black &amp;gt; Mary&lt;br /&gt;
Take     Black     &amp;gt; Black &amp;gt; Take&lt;br /&gt;
Jane     Black     &amp;gt; Black &amp;gt; Jane&lt;br /&gt;
Chris    Chris     &amp;gt; Chris&lt;br /&gt;
Mike     Chris     &amp;gt; Chris &amp;gt; Mike&lt;br /&gt;
Peter    Peter     &amp;gt; Peter&lt;br /&gt;
Jane     Peter     &amp;gt; Peter &amp;gt; Jane&lt;br /&gt;
Smart    Peter     &amp;gt; Peter &amp;gt; Jane &amp;gt; Smart&lt;br /&gt;
Ana      Peter     &amp;gt; Peter &amp;gt; Jane &amp;gt; Smart &amp;gt; Ana&lt;br /&gt;
Fake     Peter     &amp;gt; Peter &amp;gt; Jane &amp;gt; Fake&lt;br /&gt;
Tom      Peter     &amp;gt; Peter &amp;gt; Jane &amp;gt; Fake &amp;gt; Tom&lt;br /&gt;
ENAME    DESIGNER FULL_PATH&lt;br /&gt;
-------- -------- ----------------------------------------&lt;br /&gt;
Black    Peter     &amp;gt; Peter &amp;gt; Black&lt;br /&gt;
Jack     Peter     &amp;gt; Peter &amp;gt; Black &amp;gt; Jack&lt;br /&gt;
Wil      Peter     &amp;gt; Peter &amp;gt; Black &amp;gt; Wil&lt;br /&gt;
Mary     Peter     &amp;gt; Peter &amp;gt; Black &amp;gt; Mary&lt;br /&gt;
Take     Peter     &amp;gt; Peter &amp;gt; Black &amp;gt; Take&lt;br /&gt;
Jane     Peter     &amp;gt; Peter &amp;gt; Black &amp;gt; Jane&lt;br /&gt;
Chris    Peter     &amp;gt; Peter &amp;gt; Chris&lt;br /&gt;
Mike     Peter     &amp;gt; Peter &amp;gt; Chris &amp;gt; Mike&lt;br /&gt;
27 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table emp;&lt;br /&gt;
Table dropped.&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Starting at a Node Other than the Root==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE employee (&lt;br /&gt;
  2    employee_id INTEGER,&lt;br /&gt;
  3    manager_id INTEGER,&lt;br /&gt;
  4    first_name VARCHAR2(10) NOT NULL,&lt;br /&gt;
  5    last_name VARCHAR2(10) NOT NULL,&lt;br /&gt;
  6    title VARCHAR2(20),&lt;br /&gt;
  7    salary NUMBER(6, 0)&lt;br /&gt;
  8  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee (EMPLOYEE_ID, MANAGER_ID,FIRST_NAME,LAST_NAME,TITLE,SALARY)&lt;br /&gt;
  2                 values( 1         ,0            , &amp;quot;James&amp;quot;  ,&amp;quot;Smith&amp;quot;  ,&amp;quot;CEO&amp;quot;,800000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee (EMPLOYEE_ID, MANAGER_ID,FIRST_NAME,LAST_NAME,TITLE,SALARY)&lt;br /&gt;
  2                 values( 2         , 1         ,&amp;quot;Ron&amp;quot;     ,&amp;quot;Johnson&amp;quot;,&amp;quot;Sales Manager&amp;quot;,600000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee (EMPLOYEE_ID, MANAGER_ID,FIRST_NAME,LAST_NAME,TITLE,SALARY)&lt;br /&gt;
  2                 values( 3         , 2         ,&amp;quot;Fred&amp;quot;    ,&amp;quot;Hobbs&amp;quot;  ,&amp;quot;Sales Person&amp;quot;,200000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee (EMPLOYEE_ID, MANAGER_ID,FIRST_NAME,LAST_NAME,TITLE,SALARY)&lt;br /&gt;
  2                 values( 4         , 1         ,&amp;quot;Susan&amp;quot;   ,&amp;quot;Jones&amp;quot;  ,&amp;quot;Support Manager&amp;quot;,500000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee (EMPLOYEE_ID, MANAGER_ID,FIRST_NAME,LAST_NAME,TITLE,SALARY)&lt;br /&gt;
  2                 values( 5         , 2         ,&amp;quot;Rob&amp;quot;     ,&amp;quot;Green&amp;quot;  ,&amp;quot;Sales Person&amp;quot;, 40000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee (EMPLOYEE_ID, MANAGER_ID,FIRST_NAME,LAST_NAME,TITLE,SALARY)&lt;br /&gt;
  2                 values( 6         , 4         ,&amp;quot;Jane&amp;quot;    ,&amp;quot;Brown&amp;quot;  ,&amp;quot;Support Person&amp;quot;,45000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee (EMPLOYEE_ID, MANAGER_ID,FIRST_NAME,LAST_NAME,TITLE,SALARY)&lt;br /&gt;
  2                 values( 7         , 4         ,&amp;quot;John&amp;quot;    ,&amp;quot;Grey&amp;quot;   ,&amp;quot;Support Manager&amp;quot;,30000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee (EMPLOYEE_ID, MANAGER_ID,FIRST_NAME,LAST_NAME,TITLE,SALARY)&lt;br /&gt;
  2                 values( 8         , 7         ,&amp;quot;Jean&amp;quot;    ,&amp;quot;Blue&amp;quot;   ,&amp;quot;Support Person&amp;quot;,29000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee (EMPLOYEE_ID, MANAGER_ID,FIRST_NAME,LAST_NAME,TITLE,SALARY)&lt;br /&gt;
  2                 values( 9         , 6         ,&amp;quot;Henry&amp;quot;   ,&amp;quot;Heyson&amp;quot; ,&amp;quot;Support Person&amp;quot;,30000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee (EMPLOYEE_ID, MANAGER_ID,FIRST_NAME,LAST_NAME,TITLE,SALARY)&lt;br /&gt;
  2                 values( 10        , 1         ,&amp;quot;Kevin&amp;quot;   ,&amp;quot;Black&amp;quot;  ,&amp;quot;Ops Manager&amp;quot;,100000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee (EMPLOYEE_ID, MANAGER_ID,FIRST_NAME,LAST_NAME,TITLE,SALARY)&lt;br /&gt;
  2                 values( 11        , 10        ,&amp;quot;Keith&amp;quot;   ,&amp;quot;Long&amp;quot;   ,&amp;quot;Ops Person&amp;quot;,50000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee (EMPLOYEE_ID, MANAGER_ID,FIRST_NAME,LAST_NAME,TITLE,SALARY)&lt;br /&gt;
  2                 values( 12        , 10        ,&amp;quot;Frank&amp;quot;   ,&amp;quot;Howard&amp;quot; ,&amp;quot;Ops Person&amp;quot;,45000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee (EMPLOYEE_ID, MANAGER_ID,FIRST_NAME,LAST_NAME,TITLE,SALARY)&lt;br /&gt;
  2                 values( 13        , 10        ,&amp;quot;Doreen&amp;quot;  ,&amp;quot;Penn&amp;quot;   ,&amp;quot;Ops Person&amp;quot;,47000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from employee;&lt;br /&gt;
EMPLOYEE_ID MANAGER_ID FIRST_NAME LAST_NAME  TITLE                    SALARY&lt;br /&gt;
----------- ---------- ---------- ---------- -------------------- ----------&lt;br /&gt;
          1          0 James      Smith      CEO                      800000&lt;br /&gt;
          2          1 Ron        Johnson    Sales Manager            600000&lt;br /&gt;
          3          2 Fred       Hobbs      Sales Person             200000&lt;br /&gt;
          4          1 Susan      Jones      Support Manager          500000&lt;br /&gt;
          5          2 Rob        Green      Sales Person              40000&lt;br /&gt;
          6          4 Jane       Brown      Support Person            45000&lt;br /&gt;
          7          4 John       Grey       Support Manager           30000&lt;br /&gt;
          8          7 Jean       Blue       Support Person            29000&lt;br /&gt;
          9          6 Henry      Heyson     Support Person            30000&lt;br /&gt;
         10          1 Kevin      Black      Ops Manager              100000&lt;br /&gt;
         11         10 Keith      Long       Ops Person                50000&lt;br /&gt;
         12         10 Frank      Howard     Ops Person                45000&lt;br /&gt;
         13         10 Doreen     Penn       Ops Person                47000&lt;br /&gt;
13 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; --Starting at a Node Other than the Root&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT LEVEL,&lt;br /&gt;
  2   LPAD(&amp;quot; &amp;quot;, 2 * LEVEL - 1) || first_name || &amp;quot; &amp;quot; ||&lt;br /&gt;
  3   last_name AS employee&lt;br /&gt;
  4  FROM employee&lt;br /&gt;
  5  START WITH last_name = &amp;quot;Jones&amp;quot;&lt;br /&gt;
  6  CONNECT BY PRIOR employee_id = manager_id;&lt;br /&gt;
     LEVEL EMPLOYEE&lt;br /&gt;
---------- -------------------------&lt;br /&gt;
         1  Susan Jones&lt;br /&gt;
         2    Jane Brown&lt;br /&gt;
         3      Henry Heyson&lt;br /&gt;
         2    John Grey&lt;br /&gt;
         3      Jean Blue&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table employee;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>