<?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_Tutorial%2FObject_Oriented%2FNested_Object_Table</id>
		<title>Oracle PL/SQL Tutorial/Object Oriented/Nested Object Table - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL_Tutorial%2FObject_Oriented%2FNested_Object_Table"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Object_Oriented/Nested_Object_Table&amp;action=history"/>
		<updated>2026-05-26T12:05:42Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Object_Oriented/Nested_Object_Table&amp;diff=2977&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_Tutorial/Object_Oriented/Nested_Object_Table&amp;diff=2977&amp;oldid=prev"/>
				<updated>2010-05-26T13:45:46Z</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_Tutorial/Object_Oriented/Nested_Object_Table&amp;diff=2978&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Object_Oriented/Nested_Object_Table&amp;diff=2978&amp;oldid=prev"/>
				<updated>2010-05-26T10:04:36Z</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;== A row is selected based on the inner column object==&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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE Or Replace TYPE AddressType AS OBJECT (&lt;br /&gt;
  2    street VARCHAR2(15),&lt;br /&gt;
  3    city   VARCHAR2(15),&lt;br /&gt;
  4    state  CHAR(2),&lt;br /&gt;
  5    zip    VARCHAR2(5)&lt;br /&gt;
  6  )&lt;br /&gt;
  7  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE Or Replace TYPE PersonType AS OBJECT (&lt;br /&gt;
  2    id         NUMBER,&lt;br /&gt;
  3    first_name VARCHAR2(10),&lt;br /&gt;
  4    last_name  VARCHAR2(10),&lt;br /&gt;
  5    dob        DATE,&lt;br /&gt;
  6    phone      VARCHAR2(12),&lt;br /&gt;
  7    address    AddressType&lt;br /&gt;
  8  )&lt;br /&gt;
  9  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE object_customers OF PersonType&lt;br /&gt;
  2  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO object_customers VALUES (&lt;br /&gt;
  2    PersonType(1, &amp;quot;John&amp;quot;, &amp;quot;White&amp;quot;, &amp;quot;04-FEB-1945&amp;quot;, &amp;quot;800-555-5555&amp;quot;,&lt;br /&gt;
  3      AddressType(&amp;quot;2 Ave&amp;quot;, &amp;quot;City&amp;quot;, &amp;quot;AA&amp;quot;, &amp;quot;12345&amp;quot;)&lt;br /&gt;
  4    )&lt;br /&gt;
  5  );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO object_customers (&lt;br /&gt;
  2    id, first_name, last_name, dob, phone,&lt;br /&gt;
  3    address&lt;br /&gt;
  4  ) VALUES (&lt;br /&gt;
  5    2, &amp;quot;James&amp;quot;, &amp;quot;Green&amp;quot;, &amp;quot;05-FEB-1968&amp;quot;, &amp;quot;800-555-4444&amp;quot;,&lt;br /&gt;
  6    AddressType(&amp;quot;3 Ave&amp;quot;, &amp;quot;Town&amp;quot;, &amp;quot;CC&amp;quot;, &amp;quot;12345&amp;quot;)&lt;br /&gt;
  7  );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from object_customers;&lt;br /&gt;
 ID FIRST_NAME           LAST_NAME            DOB       PHONE             ADDRESS(STREET, CITY, STATE, ZIP)&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
  1 John                 White                04-FEB-45 800-555-5555      ADDRESSTYPE(&amp;quot;2 Ave&amp;quot;, &amp;quot;City&amp;quot;, &amp;quot;AA&amp;quot;, &amp;quot;12345&amp;quot;)&lt;br /&gt;
  2 James                Green                05-FEB-68 800-555-4444      ADDRESSTYPE(&amp;quot;3 Ave&amp;quot;, &amp;quot;Town&amp;quot;, &amp;quot;CC&amp;quot;, &amp;quot;12345&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT *&lt;br /&gt;
  2  FROM object_customers oc&lt;br /&gt;
  3  WHERE oc.address.state = &amp;quot;MA&amp;quot;;&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table object_customers;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop type persontype;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt; drop type addresstype;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== DELETE on whole Nested Tables==&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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TYPE numberTableType AS TABLE OF NUMBER(10);&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE address_list (list_id VARCHAR2(6)PRIMARY KEY,&lt;br /&gt;
  2                   home_addresses numberTableType )&lt;br /&gt;
  3                   NESTED TABLE home_addresses STORE AS home_addreses_tab;&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO address_list VALUES(&amp;quot;H101&amp;quot;,numberTableType(1001,1002,1003,1004));&lt;br /&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; DELETE FROM address_list&lt;br /&gt;
  2  WHERE list_id =&amp;quot;H102&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table address_list;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== DML on whole Nested Tables==&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;
SQL&amp;gt; -- INSERT&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TYPE numberTableType AS TABLE OF NUMBER(10);&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE address_list (&lt;br /&gt;
  2      list_id VARCHAR2(6)PRIMARY KEY,&lt;br /&gt;
  3      home_addresses numberTableType )&lt;br /&gt;
  4  NESTED TABLE home_addresses STORE AS home_addreses_tab;&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO address_list VALUES(&amp;quot;H101&amp;quot;,numberTableType(1001,1002,1003,1004));&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2    v_numberVarryType numberTableType :=numberTableType(2001,2002);&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4    INSERT INTO address_list VALUES (&amp;quot;H102&amp;quot;,v_numberVarryType);&lt;br /&gt;
  5  END;&lt;br /&gt;
  6  /&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 address_list;&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Inserting Rows into the nested-object table==&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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE Or Replace TYPE AddressType AS OBJECT (&lt;br /&gt;
  2    street VARCHAR2(15),&lt;br /&gt;
  3    city   VARCHAR2(15),&lt;br /&gt;
  4    state  CHAR(2),&lt;br /&gt;
  5    zip    VARCHAR2(5)&lt;br /&gt;
  6  )&lt;br /&gt;
  7  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE Or Replace TYPE PersonType AS OBJECT (&lt;br /&gt;
  2    id         NUMBER,&lt;br /&gt;
  3    first_name VARCHAR2(10),&lt;br /&gt;
  4    last_name  VARCHAR2(10),&lt;br /&gt;
  5    dob        DATE,&lt;br /&gt;
  6    phone      VARCHAR2(12),&lt;br /&gt;
  7    address    AddressType&lt;br /&gt;
  8  )&lt;br /&gt;
  9  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE object_customers OF PersonType;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO object_customers VALUES (&lt;br /&gt;
  2    PersonType(1, &amp;quot;John&amp;quot;, &amp;quot;White&amp;quot;, &amp;quot;04-FEB-1945&amp;quot;, &amp;quot;800-555-5555&amp;quot;,&lt;br /&gt;
  3      AddressType(&amp;quot;2 Ave&amp;quot;, &amp;quot;town&amp;quot;, &amp;quot;AA&amp;quot;, &amp;quot;12345&amp;quot;)&lt;br /&gt;
  4    )&lt;br /&gt;
  5  );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO object_customers (&lt;br /&gt;
  2    id, first_name, last_name, dob, phone,&lt;br /&gt;
  3    address&lt;br /&gt;
  4  ) VALUES (&lt;br /&gt;
  5    2, &amp;quot;James&amp;quot;, &amp;quot;Green&amp;quot;, &amp;quot;05-FEB-1968&amp;quot;, &amp;quot;800-555-4444&amp;quot;,&lt;br /&gt;
  6    AddressType(&amp;quot;3 Ave&amp;quot;, &amp;quot;City&amp;quot;, &amp;quot;CC&amp;quot;, &amp;quot;12345&amp;quot;)&lt;br /&gt;
  7  );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from object_customers;&lt;br /&gt;
 ID FIRST_NAME           LAST_NAME            DOB       PHONE           ADDRESS(STREET, CITY, STATE, ZIP)&lt;br /&gt;
---------------------------------------------------------------------------------------------------------&lt;br /&gt;
  1 John                 White                04-FEB-45 800-555-5555    ADDRESSTYPE(&amp;quot;2 Ave&amp;quot;, &amp;quot;town&amp;quot;, &amp;quot;AA&amp;quot;, &amp;quot;12345&amp;quot;)&lt;br /&gt;
  2 James                Green                05-FEB-68 800-555-4444    ADDRESSTYPE(&amp;quot;3 Ave&amp;quot;, &amp;quot;City&amp;quot;, &amp;quot;CC&amp;quot;, &amp;quot;12345&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table object_customers;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop type persontype;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt; drop type addresstype;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Object References==&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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TYPE address AS OBJECT&lt;br /&gt;
  2              (line1 VARCHAR2(20),&lt;br /&gt;
  3               line2 VARCHAR2(20),&lt;br /&gt;
  4               city VARCHAR2(20),&lt;br /&gt;
  5               state_code VARCHAR2(2),&lt;br /&gt;
  6               zip VARCHAR2(13),&lt;br /&gt;
  7    MEMBER FUNCTION get_address RETURN VARCHAR2,&lt;br /&gt;
  8    MEMBER PROCEDURE set_address&lt;br /&gt;
  9              (addressLine1 VARCHAR2,&lt;br /&gt;
 10               addressLine2 VARCHAR2,&lt;br /&gt;
 11               address_city VARCHAR2,&lt;br /&gt;
 12               address_state VARCHAR2,&lt;br /&gt;
 13               address_zip VARCHAR2)&lt;br /&gt;
 14  );&lt;br /&gt;
 15  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TYPE BODY address AS&lt;br /&gt;
  2    MEMBER FUNCTION get_address RETURN VARCHAR2&lt;br /&gt;
  3    IS&lt;br /&gt;
  4    BEGIN&lt;br /&gt;
  5      RETURN (SELF.line1||&amp;quot; &amp;quot;||SELF.line2||&amp;quot; &amp;quot;||SELF.city||&amp;quot;, &amp;quot;||SELF.state_code||&amp;quot; &amp;quot;||SELF.zip);&lt;br /&gt;
  6    END get_address;&lt;br /&gt;
  7    MEMBER PROCEDURE set_address (addressLine1 VARCHAR2,&lt;br /&gt;
  8                  addressLine2 VARCHAR2,&lt;br /&gt;
  9                  address_city VARCHAR2,&lt;br /&gt;
 10                  address_state VARCHAR2,&lt;br /&gt;
 11                  address_zip VARCHAR2)&lt;br /&gt;
 12    IS&lt;br /&gt;
 13    BEGIN&lt;br /&gt;
 14      line1 :=addressLine1;&lt;br /&gt;
 15&lt;br /&gt;
 16      line2 :=addressLine2;&lt;br /&gt;
 17&lt;br /&gt;
 18      city :=address_city;&lt;br /&gt;
 19&lt;br /&gt;
 20      state_code :=address_state;&lt;br /&gt;
 21&lt;br /&gt;
 22      zip :=address_zip;&lt;br /&gt;
 23    END set_address;&lt;br /&gt;
 24  END;&lt;br /&gt;
 25  /&lt;br /&gt;
Type body created.&lt;br /&gt;
SQL&amp;gt; CREATE TABLE employee&lt;br /&gt;
  2  (empid number(10)PRIMARY KEY,&lt;br /&gt;
  3   lastname varchar2(30)NOT NULL,&lt;br /&gt;
  4   firstname varchar2(30)NOT NULL,&lt;br /&gt;
  5   middle_initial varchar2(2),&lt;br /&gt;
  6   emp_address REF address);&lt;br /&gt;
Table created.&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;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Select a single row from the nested-object table==&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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE Or Replace TYPE AddressType AS OBJECT (&lt;br /&gt;
  2    street VARCHAR2(15),&lt;br /&gt;
  3    city   VARCHAR2(15),&lt;br /&gt;
  4    state  CHAR(2),&lt;br /&gt;
  5    zip    VARCHAR2(5)&lt;br /&gt;
  6  )&lt;br /&gt;
  7  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE Or Replace TYPE PersonType AS OBJECT (&lt;br /&gt;
  2    id         NUMBER,&lt;br /&gt;
  3    first_name VARCHAR2(10),&lt;br /&gt;
  4    last_name  VARCHAR2(10),&lt;br /&gt;
  5    dob        DATE,&lt;br /&gt;
  6    phone      VARCHAR2(12),&lt;br /&gt;
  7    address    AddressType&lt;br /&gt;
  8  )&lt;br /&gt;
  9  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE object_customers OF PersonType&lt;br /&gt;
  2  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO object_customers VALUES (&lt;br /&gt;
  2    PersonType(1, &amp;quot;John&amp;quot;, &amp;quot;White&amp;quot;, &amp;quot;04-FEB-1945&amp;quot;, &amp;quot;800-555-5555&amp;quot;,&lt;br /&gt;
  3      AddressType(&amp;quot;2 Street&amp;quot;, &amp;quot;City&amp;quot;, &amp;quot;MA&amp;quot;, &amp;quot;12345&amp;quot;)&lt;br /&gt;
  4    )&lt;br /&gt;
  5  );&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 object_customers (&lt;br /&gt;
  2    id, first_name, last_name, dob, phone,&lt;br /&gt;
  3    address&lt;br /&gt;
  4  ) VALUES (&lt;br /&gt;
  5    2, &amp;quot;James&amp;quot;, &amp;quot;Green&amp;quot;, &amp;quot;05-FEB-1968&amp;quot;, &amp;quot;800-555-4444&amp;quot;,&lt;br /&gt;
  6    AddressType(&amp;quot;3 Ave&amp;quot;, &amp;quot;City&amp;quot;, &amp;quot;CA&amp;quot;, &amp;quot;12345&amp;quot;)&lt;br /&gt;
  7  );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from object_customers;&lt;br /&gt;
 ID FIRST_NAME           LAST_NAME            DOB       PHONE             ADDRESS(STREET, CITY, STATE, ZIP)&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
  1 John                 White                04-FEB-45 800-555-5555      ADDRESSTYPE(&amp;quot;2 Street&amp;quot;, &amp;quot;City&amp;quot;, &amp;quot;MA&amp;quot;, &amp;quot;12345&amp;quot;)&lt;br /&gt;
  2 James                Green                05-FEB-68 800-555-4444      ADDRESSTYPE(&amp;quot;3 Ave&amp;quot;, &amp;quot;City&amp;quot;, &amp;quot;CA&amp;quot;, &amp;quot;12345&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT *&lt;br /&gt;
  2  FROM object_customers oc&lt;br /&gt;
  3  WHERE oc.id = 1;&lt;br /&gt;
 ID FIRST_NAME           LAST_NAME            DOB       PHONE           ADDRESS(STREET, CITY, STATE, ZIP)&lt;br /&gt;
------------------------------------------------------------------------&lt;br /&gt;
  1 John                 White                04-FEB-45 800-555-5555    ADDRESSTYPE(&amp;quot;2 Street&amp;quot;, &amp;quot;City&amp;quot;, &amp;quot;MA&amp;quot;, &amp;quot;12345&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table object_customers;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop type persontype;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt; drop type addresstype;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Selecting Rows from the nested-object table==&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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE Or Replace TYPE AddressType AS OBJECT (&lt;br /&gt;
  2    street VARCHAR2(15),&lt;br /&gt;
  3    city   VARCHAR2(15),&lt;br /&gt;
  4    state  CHAR(2),&lt;br /&gt;
  5    zip    VARCHAR2(5)&lt;br /&gt;
  6  )&lt;br /&gt;
  7  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE Or Replace TYPE PersonType AS OBJECT (&lt;br /&gt;
  2    id         NUMBER,&lt;br /&gt;
  3    first_name VARCHAR2(10),&lt;br /&gt;
  4    last_name  VARCHAR2(10),&lt;br /&gt;
  5    dob        DATE,&lt;br /&gt;
  6    phone      VARCHAR2(12),&lt;br /&gt;
  7    address    AddressType&lt;br /&gt;
  8  )&lt;br /&gt;
  9  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE object_customers OF PersonType;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO object_customers VALUES (&lt;br /&gt;
  2    PersonType(1, &amp;quot;John&amp;quot;, &amp;quot;White&amp;quot;, &amp;quot;04-FEB-1999&amp;quot;, &amp;quot;800-555-5555&amp;quot;,&lt;br /&gt;
  3      AddressType(&amp;quot;2 Ave&amp;quot;, &amp;quot;town&amp;quot;, &amp;quot;AA&amp;quot;, &amp;quot;12345&amp;quot;)&lt;br /&gt;
  4    )&lt;br /&gt;
  5  );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO object_customers (&lt;br /&gt;
  2    id, first_name, last_name, dob, phone,&lt;br /&gt;
  3    address&lt;br /&gt;
  4  ) VALUES (&lt;br /&gt;
  5    2, &amp;quot;James&amp;quot;, &amp;quot;Green&amp;quot;, &amp;quot;05-FEB-1968&amp;quot;, &amp;quot;800-555-4444&amp;quot;,&lt;br /&gt;
  6    AddressType(&amp;quot;3 Ave&amp;quot;, &amp;quot;City&amp;quot;, &amp;quot;CA&amp;quot;, &amp;quot;12345&amp;quot;)&lt;br /&gt;
  7  );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from object_customers;&lt;br /&gt;
 ID FIRST_NAME           LAST_NAME            DOB       PHONE            ADDRESS(STREET, CITY, STATE, ZIP)&lt;br /&gt;
-------------------------------------------------------------------------&lt;br /&gt;
  1 John                 White                04-FEB-99 800-555-5555     ADDRESSTYPE(&amp;quot;2 Ave&amp;quot;, &amp;quot;town&amp;quot;, &amp;quot;AA&amp;quot;, &amp;quot;12345&amp;quot;)&lt;br /&gt;
  2 James                Green                05-FEB-68 800-555-4444     ADDRESSTYPE(&amp;quot;3 Ave&amp;quot;, &amp;quot;City&amp;quot;, &amp;quot;CA&amp;quot;, &amp;quot;12345&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table object_customers;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop type persontype;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt; drop type addresstype;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== SELECT on whole Nested Tables==&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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TYPE numberTableType AS TABLE OF NUMBER(10);&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt; CREATE TABLE address_list (list_id VARCHAR2(6)PRIMARY KEY,&lt;br /&gt;
  2                   home_addresses numberTableType )&lt;br /&gt;
  3                   NESTED TABLE home_addresses STORE AS home_addreses_tab;&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO address_list VALUES (&amp;quot;H101&amp;quot;,numberTableType(1001,1002,1003,1004));&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2    v_numberVarryType numberTableType :=numberTableType(2001,2002);&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4    INSERT INTO address_list VALUES (&amp;quot;H102&amp;quot;,v_numberVarryType);&lt;br /&gt;
  5  END;&lt;br /&gt;
  6  /&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table address_list;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Stored Nested Tables==&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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TYPE numberTableType AS TABLE OF NUMBER(10);&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE address_list (&lt;br /&gt;
  2      list_id VARCHAR2(6)PRIMARY KEY,&lt;br /&gt;
  3      home_addresses numberTableType )&lt;br /&gt;
  4  NESTED TABLE home_addresses STORE AS home_addreses_tab;&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table address_list;&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== UPDATE on whole Nested Tables==&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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TYPE numberTableType AS TABLE OF NUMBER(10);&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE address_list (&lt;br /&gt;
  2      list_id VARCHAR2(6)PRIMARY KEY,&lt;br /&gt;
  3      home_addresses numberTableType )&lt;br /&gt;
  4  NESTED TABLE home_addresses STORE AS home_addreses_tab;&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO address_list VALUES(&amp;quot;H101&amp;quot;,numberTableType(1001,1002,1003,1004));&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2    v_numberVarryType numberTableType :=numberTableType(1011,1012,1013);&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4    UPDATE address_list&lt;br /&gt;
  5    SET home_addresses =v_numberVarryType&lt;br /&gt;
  6    WHERE list_id =&amp;quot;H102&amp;quot;;&lt;br /&gt;
  7  END;&lt;br /&gt;
  8  /&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table address_list;&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>