<?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%2FLevel</id>
		<title>Oracle PL/SQL/Hierarchical Query/Level - История изменений</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%2FLevel"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/Hierarchical_Query/Level&amp;action=history"/>
		<updated>2026-05-26T01:42:17Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL/Hierarchical_Query/Level&amp;diff=2514&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/Level&amp;diff=2514&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/Level&amp;diff=2515&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/Level&amp;diff=2515&amp;oldid=prev"/>
				<updated>2010-05-26T10:01:50Z</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;==Browse Products with three level nested queries==&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 Product (&lt;br /&gt;
  2  ProductID INT NOT NULL PRIMARY KEY,&lt;br /&gt;
  3  Name VARCHAR(50) NOT NULL,&lt;br /&gt;
  4  Description VARCHAR(1000) NOT NULL,&lt;br /&gt;
  5  Price NUMBER NULL,&lt;br /&gt;
  6  ImagePath VARCHAR(50) NULL,&lt;br /&gt;
  7  soldout NUMBER(1,0) NULL,&lt;br /&gt;
  8  Promotion NUMBER(1,0) NULL);&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE SEQUENCE ProductIDSeq;&lt;br /&gt;
Sequence created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TRIGGER ProductAutonumberTrigger&lt;br /&gt;
  2  BEFORE INSERT ON Product&lt;br /&gt;
  3  FOR EACH ROW&lt;br /&gt;
  4  BEGIN&lt;br /&gt;
  5     SELECT ProductIDSeq.NEXTVAL&lt;br /&gt;
  6     INTO :NEW.ProductID FROM DUAL;&lt;br /&gt;
  7  END;&lt;br /&gt;
  8  /&lt;br /&gt;
Trigger created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO Product (Name, Description, Price, ImagePath,soldout, Promotion)&lt;br /&gt;
  2  VALUES (&amp;quot;Pen&amp;quot;, &amp;quot;Ball Pen&amp;quot;,5.99, &amp;quot;pen.jpg&amp;quot;, 1, 0);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO Product (Name, Description, Price, ImagePath, soldout, Promotion)&lt;br /&gt;
  2  VALUES (&amp;quot;Ruler&amp;quot;, &amp;quot;Long&amp;quot;,14.99, &amp;quot;ruler.jpg&amp;quot;, 0, 0);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO Product (Name, Description, Price, ImagePath, soldout, Promotion)&lt;br /&gt;
  2  VALUES (&amp;quot;Desk&amp;quot;, &amp;quot;Computer Desk&amp;quot;,5.99, &amp;quot;desk.jpg&amp;quot;, 0, 1);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO Product (Name, Description, Price, ImagePath, soldout, Promotion)&lt;br /&gt;
  2  VALUES (&amp;quot;PC&amp;quot;, &amp;quot;Notebook&amp;quot;,49.99, &amp;quot;pc.jpg&amp;quot;, 0, 1);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO Product (Name, Description, Price, ImagePath, soldout, Promotion)&lt;br /&gt;
  2  VALUES (&amp;quot;Mouse&amp;quot;, &amp;quot;Wireless&amp;quot;,9.99, &amp;quot;mouse.jpg&amp;quot;,  1, 0);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO Product (Name, Description, Price, ImagePath, soldout, Promotion)&lt;br /&gt;
  2  VALUES (&amp;quot;Keyboard&amp;quot;, &amp;quot;keyboard&amp;quot;,3.75, &amp;quot;keyboard.jpg&amp;quot;, 0, 0);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT ProductID, Name FROM&lt;br /&gt;
  2       (SELECT ProductID, Name, ROWNUM AS rn FROM&lt;br /&gt;
  3            (SELECT ProductID, Name&lt;br /&gt;
  4             FROM Product&lt;br /&gt;
  5             ORDER BY ProductID)&lt;br /&gt;
  6       ) inner&lt;br /&gt;
  7  WHERE inner.rn BETWEEN 6 AND 10;&lt;br /&gt;
 PRODUCTID NAME&lt;br /&gt;
---------- --------------------------------------------------&lt;br /&gt;
         6 Keyboard&lt;br /&gt;
1 row selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table product;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop sequence ProductIDSeq;&lt;br /&gt;
Sequence dropped.&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;
==pseudocolumn LEVEL and an example of using the levels.==&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 book (&lt;br /&gt;
  2    isbn      VARCHAR2(10) PRIMARY KEY,&lt;br /&gt;
  3    parent_isbn VARCHAR2(10),&lt;br /&gt;
  4    series    VARCHAR2(20),&lt;br /&gt;
  5    category  VARCHAR2(20),&lt;br /&gt;
  6    title     VARCHAR2(100),&lt;br /&gt;
  7    num_pages NUMBER,&lt;br /&gt;
  8    price     NUMBER,&lt;br /&gt;
  9    copyright NUMBER(4));&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO book (isbn, parent_isbn, series, category, title, num_pages, price, copyright)&lt;br /&gt;
  2    VALUES (&amp;quot;1&amp;quot;, &amp;quot;2&amp;quot;, &amp;quot;Oracle&amp;quot;, &amp;quot;Oracle Server&amp;quot;, &amp;quot;SQL&amp;quot;, 664, 49.99, 2002);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO book (isbn, parent_isbn, series, category, title, num_pages, price, copyright)&lt;br /&gt;
  2    VALUES (&amp;quot;2&amp;quot;, null, &amp;quot;Oracle&amp;quot;, &amp;quot;Oracle Server&amp;quot;, &amp;quot;Java&amp;quot;, 772, 49.99, 2000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO book (isbn, parent_isbn, series, category, title, num_pages, price, copyright)&lt;br /&gt;
  2    VALUES (&amp;quot;3&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;Oracle&amp;quot;, &amp;quot;Oracle Server&amp;quot;, &amp;quot;XML&amp;quot;, 1008, 54.99, 2004);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SET SERVEROUTPUT ON&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2     v_level PLS_INTEGER;&lt;br /&gt;
  3     v_title book.TITLE%TYPE;&lt;br /&gt;
  4     CURSOR cur_tree IS SELECT isbn, title, series FROM book;&lt;br /&gt;
  5  BEGIN&lt;br /&gt;
  6  FOR l IN cur_tree&lt;br /&gt;
  7  LOOP&lt;br /&gt;
  8      SELECT max(LEVEL) INTO v_level FROM book&lt;br /&gt;
  9      START WITH isbn = l.isbn&lt;br /&gt;
 10      CONNECT BY PRIOR parent_isbn = isbn;&lt;br /&gt;
 11&lt;br /&gt;
 12      DBMS_OUTPUT.PUT_LINE(l.title||&amp;quot; is book &amp;quot;||v_level||&amp;quot; in the &amp;quot;||l.series||&amp;quot; series&amp;quot;);&lt;br /&gt;
 13&lt;br /&gt;
 14  END LOOP;&lt;br /&gt;
 15  CLOSE cur_tree;&lt;br /&gt;
 16  EXCEPTION&lt;br /&gt;
 17     WHEN OTHERS&lt;br /&gt;
 18     THEN&lt;br /&gt;
 19        DBMS_OUTPUT.PUT_LINE(sqlerrm);&lt;br /&gt;
 20  END;&lt;br /&gt;
 21  /&lt;br /&gt;
SQL is book 2 in the Oracle series&lt;br /&gt;
Java is book 1 in the Oracle series&lt;br /&gt;
XML is book 3 in the Oracle series&lt;br /&gt;
ORA-01001: invalid cursor&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table book;&lt;br /&gt;
Table dropped.&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;
==pseudocolumn LEVEL and an example of using the levels with an update.==&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;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE book (&lt;br /&gt;
  2    isbn      VARCHAR2(10) PRIMARY KEY,&lt;br /&gt;
  3    parent_isbn VARCHAR2(10),&lt;br /&gt;
  4    series    VARCHAR2(20),&lt;br /&gt;
  5    category  VARCHAR2(20),&lt;br /&gt;
  6    title     VARCHAR2(100),&lt;br /&gt;
  7    num_pages NUMBER,&lt;br /&gt;
  8    price     NUMBER,&lt;br /&gt;
  9    copyright NUMBER(4));&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO book (isbn, parent_isbn, series, category, title, num_pages, price, copyright)&lt;br /&gt;
  2    VALUES (&amp;quot;1&amp;quot;, &amp;quot;2&amp;quot;, &amp;quot;Oracle&amp;quot;, &amp;quot;Oracle Server&amp;quot;, &amp;quot;SQL&amp;quot;, 664, 49.99, 2002);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO book (isbn, parent_isbn, series, category, title, num_pages, price, copyright)&lt;br /&gt;
  2    VALUES (&amp;quot;2&amp;quot;, null, &amp;quot;Oracle&amp;quot;, &amp;quot;Oracle Server&amp;quot;, &amp;quot;Java&amp;quot;, 772, 49.99, 2000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO book (isbn, parent_isbn, series, category, title, num_pages, price, copyright)&lt;br /&gt;
  2    VALUES (&amp;quot;3&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;Oracle&amp;quot;, &amp;quot;Oracle Server&amp;quot;, &amp;quot;XML&amp;quot;, 1008, 54.99, 2004);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO book (isbn, parent_isbn, series, category, title, num_pages, price, copyright)&lt;br /&gt;
  2    VALUES (&amp;quot;4&amp;quot;, null, &amp;quot;Oracle Ebusiness&amp;quot;, &amp;quot;Oracle Ebusiness&amp;quot;, &amp;quot;Oracle E-Business Suite Financials Handbook&amp;quot;, 820, 59.99, 2002);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; ALTER TABLE book&lt;br /&gt;
  2  ADD position NUMBER(10);&lt;br /&gt;
Table altered.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SET SERVEROUTPUT ON&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2     v_level PLS_INTEGER;&lt;br /&gt;
  3     v_title book.TITLE%TYPE;&lt;br /&gt;
  4&lt;br /&gt;
  5     CURSOR cur_tree IS SELECT isbn, title, series FROM book;&lt;br /&gt;
  6  BEGIN&lt;br /&gt;
  7&lt;br /&gt;
  8  FOR l IN cur_tree&lt;br /&gt;
  9  LOOP&lt;br /&gt;
 10&lt;br /&gt;
 11     SELECT max(LEVEL) INTO v_level FROM book&lt;br /&gt;
 12     START WITH isbn = l.isbn&lt;br /&gt;
 13     CONNECT BY PRIOR parent_isbn = isbn;&lt;br /&gt;
 14&lt;br /&gt;
 15     UPDATE book SET position = v_level WHERE isbn = l.isbn;&lt;br /&gt;
 16&lt;br /&gt;
 17  END LOOP;&lt;br /&gt;
 18&lt;br /&gt;
 19&lt;br /&gt;
 20  COMMIT;&lt;br /&gt;
 21&lt;br /&gt;
 22  EXCEPTION&lt;br /&gt;
 23     WHEN OTHERS&lt;br /&gt;
 24     THEN&lt;br /&gt;
 25        DBMS_OUTPUT.PUT_LINE(sqlerrm);&lt;br /&gt;
 26  END;&lt;br /&gt;
 27  /&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SET PAGES 9999&lt;br /&gt;
SQL&amp;gt; SELECT title, position&lt;br /&gt;
  2  FROM book&lt;br /&gt;
  3  ORDER BY series, position;&lt;br /&gt;
TITLE&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
  POSITION&lt;br /&gt;
----------&lt;br /&gt;
Java&lt;br /&gt;
         1&lt;br /&gt;
SQL&lt;br /&gt;
         2&lt;br /&gt;
XML&lt;br /&gt;
         3&lt;br /&gt;
Oracle E-Business Suite Financials Handbook&lt;br /&gt;
         1&lt;br /&gt;
&lt;br /&gt;
4 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO book (isbn, parent_isbn, series, category, title, num_pages, price, copyright)&lt;br /&gt;
  2    VALUES (&amp;quot;111111&amp;quot;, null, &amp;quot;Oracle&amp;quot;, &amp;quot;Oracle Server&amp;quot;, &amp;quot;Oracle8.0 PL/SQL Programming&amp;quot;, 772, 49.99, 2000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; UPDATE book&lt;br /&gt;
  2  SET parent_isbn = &amp;quot;111111&amp;quot;&lt;br /&gt;
  3  WHERE isbn = &amp;quot;2&amp;quot;;&lt;br /&gt;
1 row updated.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; COMMIT;&lt;br /&gt;
Commit complete.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT title, position&lt;br /&gt;
  2  FROM book&lt;br /&gt;
  3  ORDER BY series, position;&lt;br /&gt;
TITLE&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
  POSITION&lt;br /&gt;
----------&lt;br /&gt;
Java&lt;br /&gt;
         1&lt;br /&gt;
SQL&lt;br /&gt;
         2&lt;br /&gt;
XML&lt;br /&gt;
         3&lt;br /&gt;
Oracle8.0 PL/SQL Programming&lt;br /&gt;
&lt;br /&gt;
Oracle E-Business Suite Financials Handbook&lt;br /&gt;
         1&lt;br /&gt;
&lt;br /&gt;
5 rows selected.&lt;br /&gt;
SQL&amp;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;
==sort by LEVEL==&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 employee(&lt;br /&gt;
  2           emp_no                 integer         primary key&lt;br /&gt;
  3          ,lastname               varchar2(20)    not null&lt;br /&gt;
  4          ,firstname              varchar2(15)    not null&lt;br /&gt;
  5          ,midinit                varchar2(1)&lt;br /&gt;
  6          ,street                 varchar2(30)&lt;br /&gt;
  7          ,city                   varchar2(20)&lt;br /&gt;
  8          ,state                  varchar2(2)&lt;br /&gt;
  9          ,zip                    varchar2(5)&lt;br /&gt;
 10          ,zip_4                  varchar2(4)&lt;br /&gt;
 11          ,area_code              varchar2(3)&lt;br /&gt;
 12          ,phone                  varchar2(8)&lt;br /&gt;
 13          ,salary                 number(3)&lt;br /&gt;
 14          ,birthdate              date&lt;br /&gt;
 15          ,hiredate               date&lt;br /&gt;
 16          ,title                  varchar2(20)&lt;br /&gt;
 17          ,dept_no                integer&lt;br /&gt;
 18          ,mgr                    integer&lt;br /&gt;
 19          ,region                 number&lt;br /&gt;
 20          ,division               number&lt;br /&gt;
 21          ,total_sales            number&lt;br /&gt;
 22  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt; insert into employee(emp_no, lastname, firstname, midinit, street, city, state, zip,zip_4, area_code, phone, salary, birthdate, hiredate,title, dept_no, mgr, region, division, total_sales)&lt;br /&gt;
  2               values (1,&amp;quot;Anderson&amp;quot;,&amp;quot;Nancy&amp;quot;,&amp;quot;N&amp;quot;,&amp;quot;33 Ave&amp;quot;,&amp;quot;London&amp;quot;,&amp;quot;NY&amp;quot;,&amp;quot;11111&amp;quot;,&amp;quot;1111&amp;quot;,&amp;quot;212&amp;quot;,&amp;quot;234-1111&amp;quot;,3.75,&amp;quot;21-mar-1927&amp;quot;,&amp;quot;1-feb-1947&amp;quot;,&amp;quot;Sales Manager&amp;quot;,2,null,100,10,40000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employee(emp_no, lastname, firstname, midinit, street, city, state, zip,zip_4, area_code, phone, salary, birthdate, hiredate,title, dept_no, mgr, region, division, total_sales)&lt;br /&gt;
  2               values (2,&amp;quot;Last&amp;quot;,&amp;quot;First&amp;quot;,&amp;quot;F&amp;quot;,&amp;quot;12 Ave&amp;quot;,&amp;quot;Paris&amp;quot;,&amp;quot;CA&amp;quot;,&amp;quot;22222&amp;quot;,&amp;quot;2222&amp;quot;,&amp;quot;221&amp;quot;,&amp;quot;867-2222&amp;quot;,7.75,&amp;quot;14-feb-1976&amp;quot;,&amp;quot;15-mar-1985&amp;quot;,&amp;quot;Sales Clerk&amp;quot;,2,1,100,10,10000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employee(emp_no, lastname, firstname, midinit, street, city, state, zip,zip_4, area_code, phone, salary, birthdate, hiredate,title, dept_no, mgr, region, division, total_sales)&lt;br /&gt;
  2               values (3,&amp;quot;Wash&amp;quot;,&amp;quot;Georgia&amp;quot;,&amp;quot;G&amp;quot;,&amp;quot;1 Street14&amp;quot;,&amp;quot;Barton&amp;quot;,&amp;quot;NJ&amp;quot;,&amp;quot;33333&amp;quot;,&amp;quot;3333&amp;quot;,&amp;quot;214&amp;quot;,&amp;quot;340-3333&amp;quot;,11.50,&amp;quot;2-jul-1977&amp;quot;,&amp;quot;21-apr-2004&amp;quot;,&amp;quot;Designer&amp;quot;,1,2,100,10,40000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employee(emp_no, lastname, firstname, midinit, street, city, state, zip,zip_4, area_code, phone, salary, birthdate, hiredate,title, dept_no, mgr, region, division, total_sales)&lt;br /&gt;
  2               values (4,&amp;quot;Bush&amp;quot;,&amp;quot;Dave&amp;quot;,&amp;quot;D&amp;quot;,&amp;quot;56 Street&amp;quot;,&amp;quot;Island&amp;quot;,&amp;quot;RI&amp;quot;,&amp;quot;44444&amp;quot;,&amp;quot;4444&amp;quot;,&amp;quot;215&amp;quot;,&amp;quot;777-4444&amp;quot;,21.65,&amp;quot;15-may-1945&amp;quot;,&amp;quot;2-aug-1975&amp;quot;,&amp;quot;Designer&amp;quot;,1,2,100,10,40000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employee(emp_no, lastname, firstname, midinit, street, city, state, zip,zip_4, area_code, phone, salary, birthdate, hiredate,title, dept_no, mgr, region, division, total_sales)&lt;br /&gt;
  2               values (5,&amp;quot;Will&amp;quot;,&amp;quot;Robin&amp;quot;,&amp;quot;W&amp;quot;,&amp;quot;56 Street&amp;quot;,&amp;quot;Island&amp;quot;,&amp;quot;MA&amp;quot;,&amp;quot;55555&amp;quot;,&amp;quot;5555&amp;quot;,&amp;quot;216&amp;quot;,&amp;quot;777-5555&amp;quot;,24.65,&amp;quot;10-dec-1980&amp;quot;,&amp;quot;2-aug-2007&amp;quot;,&amp;quot;Designer&amp;quot;,1,5,100,10,40000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employee(emp_no, lastname, firstname, midinit, street, city, state, zip,zip_4, area_code, phone, salary, birthdate, hiredate,title, dept_no, mgr, region, division, total_sales)&lt;br /&gt;
  2               values (6,&amp;quot;Pete&amp;quot;,&amp;quot;Mona&amp;quot;,&amp;quot;M&amp;quot;,&amp;quot;13 Ave&amp;quot;,&amp;quot;York&amp;quot;,&amp;quot;MO&amp;quot;,&amp;quot;66666&amp;quot;,&amp;quot;6666&amp;quot;,&amp;quot;217&amp;quot;,&amp;quot;111-6666&amp;quot;,9,&amp;quot;14-feb-1966&amp;quot;,&amp;quot;15-mar-1985&amp;quot;,&amp;quot;Sales Clerk&amp;quot;,2,5,100,10,40000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employee(emp_no, lastname, firstname, midinit, street, city, state, zip,zip_4, area_code, phone, salary, birthdate, hiredate,title, dept_no, mgr, region, division, total_sales)&lt;br /&gt;
  2               values (7,&amp;quot;Roke&amp;quot;,&amp;quot;John&amp;quot;,&amp;quot;J&amp;quot;,&amp;quot;67 Ave&amp;quot;,&amp;quot;New York&amp;quot;,&amp;quot;BC&amp;quot;,&amp;quot;77777&amp;quot;,&amp;quot;7777&amp;quot;,&amp;quot;218&amp;quot;,&amp;quot;122-7777&amp;quot;,10.00,&amp;quot;14-jun-1955&amp;quot;,&amp;quot;15-mar-1975&amp;quot;,&amp;quot;Accountant&amp;quot;,3,2,100,10,40000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employee(emp_no, lastname, firstname, midinit, street, city, state, zip,zip_4, area_code, phone, salary, birthdate, hiredate,title, dept_no, mgr, region, division, total_sales)&lt;br /&gt;
  2               values (8,&amp;quot;Horry&amp;quot;,&amp;quot;Tedi&amp;quot;,&amp;quot;T&amp;quot;,&amp;quot;1236 Lane&amp;quot;,&amp;quot;Newton&amp;quot;,&amp;quot;NY&amp;quot;,&amp;quot;88888&amp;quot;,&amp;quot;8888&amp;quot;,&amp;quot;219&amp;quot;,&amp;quot;222-8888&amp;quot;,13.00,&amp;quot;10-jun-1955&amp;quot;,&amp;quot;15-aug-1985&amp;quot;,&amp;quot;Sales Representative&amp;quot;,3,2,100,10,50000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employee(emp_no, lastname, firstname, midinit, street, city, state, zip,zip_4, area_code, phone, salary, birthdate, hiredate,title, dept_no, mgr, region, division, total_sales)&lt;br /&gt;
  2                values (9,&amp;quot;Bar&amp;quot;,&amp;quot;Candi&amp;quot;,&amp;quot;C&amp;quot;,&amp;quot;400 East Street&amp;quot;,&amp;quot;Yorken&amp;quot;,&amp;quot;NY&amp;quot;,&amp;quot;99999&amp;quot;,&amp;quot;9999&amp;quot;,&amp;quot;220&amp;quot;,&amp;quot;321-9999&amp;quot;,12.00,&amp;quot;10-oct-1933&amp;quot;,&amp;quot;15-jan-1969&amp;quot;,&amp;quot;Sales Representative&amp;quot;,3,5,100,10,35000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from employee;&lt;br /&gt;
    EMP_NO LASTNAME             FIRSTNAME       M STREET                         CITY                 ST ZIP   ZIP_ ARE PHONE        SALARY&lt;br /&gt;
---------- -------------------- --------------- - ------------------------------ -------------------- -- ----- ---- --- -------- ----------&lt;br /&gt;
BIRTHDATE            HIREDATE             TITLE                   DEPT_NO        MGR     REGION   DIVISION TOTAL_SALES&lt;br /&gt;
-------------------- -------------------- -------------------- ---------- ---------- ---------- ---------- -----------&lt;br /&gt;
         1 Anderson             Nancy           N 33 Ave                         London               NY 11111 1111 212 234-1111          4&lt;br /&gt;
21-MAR-1927 00:00:00 01-FEB-1947 00:00:00 Sales Manager                 2                   100      10  40000&lt;br /&gt;
         2 Last                 First           F 12 Ave                         Paris                CA 22222 2222 221 867-2222          8&lt;br /&gt;
14-FEB-1976 00:00:00 15-MAR-1985 00:00:00 Sales Clerk                   2          1        100      10  10000&lt;br /&gt;
         3 Wash                 Georgia         G 1 Street14                     Barton               NJ 33333 3333 214 340-3333         12&lt;br /&gt;
02-JUL-1977 00:00:00 21-APR-2004 00:00:00 Designer                      1          2        100      10  40000&lt;br /&gt;
         4 Bush                 Dave            D 56 Street                      Island               RI 44444 4444 215 777-4444         22&lt;br /&gt;
15-MAY-1945 00:00:00 02-AUG-1975 00:00:00 Designer                      1          2        100      10  40000&lt;br /&gt;
         5 Will                 Robin           W 56 Street                      Island               MA 55555 5555 216 777-5555         25&lt;br /&gt;
10-DEC-1980 00:00:00 02-AUG-2007 00:00:00 Designer                      1          5        100      10  40000&lt;br /&gt;
         6 Pete                 Mona            M 13 Ave                         York                 MO 66666 6666 217 111-6666          9&lt;br /&gt;
14-FEB-1966 00:00:00 15-MAR-1985 00:00:00 Sales Clerk                   2          5        100      10  40000&lt;br /&gt;
         7 Roke                 John            J 67 Ave                         New York             BC 77777 7777 218 122-7777         10&lt;br /&gt;
14-JUN-1955 00:00:00 15-MAR-1975 00:00:00 Accountant                    3          2        100      10  40000&lt;br /&gt;
         8 Horry                Tedi            T 1236 Lane                      Newton               NY 88888 8888 219 222-8888         13&lt;br /&gt;
10-JUN-1955 00:00:00 15-AUG-1985 00:00:00 Sales Representative          3          2        100      10  50000&lt;br /&gt;
         9 Bar                  Candi           C 400 East Street                Yorken               NY 99999 9999 220 321-9999         12&lt;br /&gt;
10-OCT-1933 00:00:00 15-JAN-1969 00:00:00 Sales Representative          3          5        100      10  35000&lt;br /&gt;
&lt;br /&gt;
9 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select lpad(&amp;quot; &amp;quot;,2*level-2) || lastname as name&lt;br /&gt;
  2  from employee&lt;br /&gt;
  3  start with emp_no = 2&lt;br /&gt;
  4  connect by prior emp_no = mgr&lt;br /&gt;
  5  ORDER BY LEVEL;&lt;br /&gt;
NAME&lt;br /&gt;
--------------------&lt;br /&gt;
Last&lt;br /&gt;
  Horry&lt;br /&gt;
  Roke&lt;br /&gt;
  Wash&lt;br /&gt;
  Bush&lt;br /&gt;
5 rows selected.&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;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Traversing Upward Through the Tree==&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; 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; -- Traversing Upward Through the Tree&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;Blue&amp;quot;&lt;br /&gt;
  6  CONNECT BY PRIOR manager_id = employee_id;&lt;br /&gt;
     LEVEL EMPLOYEE&lt;br /&gt;
---------- -------------------------&lt;br /&gt;
         1  Jean Blue&lt;br /&gt;
         2    John Grey&lt;br /&gt;
         3      Susan Jones&lt;br /&gt;
         4        James Smith&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;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use the COUNT() function and LEVEL to get the number of levels in the tree==&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; --Use the COUNT() function and LEVEL to get the number of levels in the tree&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT COUNT(DISTINCT LEVEL)&lt;br /&gt;
  2  FROM employee&lt;br /&gt;
  3  START WITH employee_id = 1&lt;br /&gt;
  4  CONNECT BY PRIOR employee_id = manager_id;&lt;br /&gt;
COUNT(DISTINCTLEVEL)&lt;br /&gt;
--------------------&lt;br /&gt;
                   4&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;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using the LEVEL Pseudo-Column:display the level in the tree==&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 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; --Using the LEVEL Pseudo-Column:display the level in the tree&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT LEVEL, employee_id, manager_id, first_name, last_name&lt;br /&gt;
  2  FROM employee&lt;br /&gt;
  3  START WITH employee_id = 1&lt;br /&gt;
  4  CONNECT BY PRIOR employee_id = manager_id&lt;br /&gt;
  5  ORDER BY LEVEL;&lt;br /&gt;
     LEVEL EMPLOYEE_ID MANAGER_ID FIRST_NAME LAST_NAME&lt;br /&gt;
---------- ----------- ---------- ---------- ----------&lt;br /&gt;
         1           1          0 James      Smith&lt;br /&gt;
         2          10          1 Kevin      Black&lt;br /&gt;
         2           2          1 Ron        Johnson&lt;br /&gt;
         2           4          1 Susan      Jones&lt;br /&gt;
         3          13         10 Doreen     Penn&lt;br /&gt;
         3           7          4 John       Grey&lt;br /&gt;
         3          11         10 Keith      Long&lt;br /&gt;
         3           5          2 Rob        Green&lt;br /&gt;
         3           3          2 Fred       Hobbs&lt;br /&gt;
         3          12         10 Frank      Howard&lt;br /&gt;
         3           6          4 Jane       Brown&lt;br /&gt;
         4           8          7 Jean       Blue&lt;br /&gt;
         4           9          6 Henry      Heyson&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>