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

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL/Hierarchical_Query/Indent&amp;diff=2512&amp;oldid=prev</id>
		<title> в 13:45, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/Hierarchical_Query/Indent&amp;diff=2512&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://sqle.ru/index.php?title=Oracle_PL/SQL/Hierarchical_Query/Indent&amp;diff=2513&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/Hierarchical_Query/Indent&amp;diff=2513&amp;oldid=prev"/>
				<updated>2010-05-26T10:01:49Z</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;==employee tree: who is my manager==&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; select  lpad(&amp;quot; &amp;quot;,2*level-1)||ename as ename&lt;br /&gt;
  2  from    emp&lt;br /&gt;
  3  start   with mgr is null&lt;br /&gt;
  4  connect by nocycle prior empno = mgr;&lt;br /&gt;
ENAME&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
 Peter&lt;br /&gt;
   Jane&lt;br /&gt;
     Smart&lt;br /&gt;
       Ana&lt;br /&gt;
     Fake&lt;br /&gt;
       Tom&lt;br /&gt;
   Black&lt;br /&gt;
     Jack&lt;br /&gt;
     Wil&lt;br /&gt;
     Mary&lt;br /&gt;
     Take&lt;br /&gt;
     Jane&lt;br /&gt;
   Chris&lt;br /&gt;
     Mike&lt;br /&gt;
14 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;
==LEVEL and the LPAD(): Formatting the Results from a Hierarchical Query==&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;&lt;br /&gt;
SQL&amp;gt; -- LEVEL and the LPAD(): Formatting the Results from a Hierarchical Query&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SET PAGESIZE 999&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; COLUMN employee FORMAT A25&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 employee_id = 1&lt;br /&gt;
  6  CONNECT BY PRIOR employee_id = manager_id;&lt;br /&gt;
     LEVEL EMPLOYEE&lt;br /&gt;
---------- -------------------------&lt;br /&gt;
         1  James Smith&lt;br /&gt;
         2    Ron Johnson&lt;br /&gt;
         3      Fred Hobbs&lt;br /&gt;
         3      Rob Green&lt;br /&gt;
         2    Susan Jones&lt;br /&gt;
         3      Jane Brown&lt;br /&gt;
         4        Henry Heyson&lt;br /&gt;
         3      John Grey&lt;br /&gt;
         4        Jean Blue&lt;br /&gt;
         2    Kevin Black&lt;br /&gt;
         3      Keith Long&lt;br /&gt;
         3      Frank Howard&lt;br /&gt;
         3      Doreen Penn&lt;br /&gt;
13 rows selected.&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>