<?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%2FObject_Oriented_Database%2FInsert</id>
		<title>Oracle PL/SQL/Object Oriented Database/Insert - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL%2FObject_Oriented_Database%2FInsert"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/Object_Oriented_Database/Insert&amp;action=history"/>
		<updated>2026-05-26T10:42:21Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL/Object_Oriented_Database/Insert&amp;diff=2717&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/Object_Oriented_Database/Insert&amp;diff=2717&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/Object_Oriented_Database/Insert&amp;diff=2718&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/Object_Oriented_Database/Insert&amp;diff=2718&amp;oldid=prev"/>
				<updated>2010-05-26T10:02:47Z</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;==Insert data into an 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;
 &lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
  2&lt;br /&gt;
SQL&amp;gt; create or replace&lt;br /&gt;
  2  type address as object(&lt;br /&gt;
  3   id number,&lt;br /&gt;
  4   street varchar2(100),&lt;br /&gt;
  5   state varchar2(2),&lt;br /&gt;
  6   zipcode varchar(11)&lt;br /&gt;
  7  )&lt;br /&gt;
  8  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table address_table of address&lt;br /&gt;
  2  /&lt;br /&gt;
Table 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; insert into address_table values ( address( 2, &amp;quot;123 Main Street&amp;quot;, &amp;quot;NJ&amp;quot;, &amp;quot;07728&amp;quot; ) )&lt;br /&gt;
  2  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from address_table;&lt;br /&gt;
&lt;br /&gt;
        ID&lt;br /&gt;
----------&lt;br /&gt;
STREET&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
ST ZIPCODE&lt;br /&gt;
-- -----------&lt;br /&gt;
         2&lt;br /&gt;
123 Main Street&lt;br /&gt;
NJ 07728&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; drop table address_table;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Insert inherited 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;
 &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace&lt;br /&gt;
  2  type person as object (&lt;br /&gt;
  3   first_name varchar2(100),&lt;br /&gt;
  4   last_name varchar2(100),&lt;br /&gt;
  5   dob date,&lt;br /&gt;
  6   phone varchar2(100),&lt;br /&gt;
  7   member function get_last_name return varchar2,&lt;br /&gt;
  8   member function get_phone_number return varchar2 )&lt;br /&gt;
  9  not final&lt;br /&gt;
 10  /&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&lt;br /&gt;
  2  type body person as&lt;br /&gt;
  3    member function get_last_name return varchar2 is&lt;br /&gt;
  4    begin&lt;br /&gt;
  5      return self.last_name;&lt;br /&gt;
  6    end;&lt;br /&gt;
  7    member function get_phone_number return varchar2 is&lt;br /&gt;
  8    begin&lt;br /&gt;
  9      return self.phone;&lt;br /&gt;
 10    end;&lt;br /&gt;
 11  end;&lt;br /&gt;
 12  /&lt;br /&gt;
Type body created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table person_table( p person );&lt;br /&gt;
Table 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; create or replace&lt;br /&gt;
  2  type new_employee under person (&lt;br /&gt;
  3    empno number,&lt;br /&gt;
  4    hiredate date,&lt;br /&gt;
  5    work_phone varchar2(100),&lt;br /&gt;
  6    overriding member function get_phone_number return varchar2,&lt;br /&gt;
  7    member function get_home_phone_number return varchar2 )&lt;br /&gt;
  8  not final&lt;br /&gt;
  9  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace&lt;br /&gt;
  2  type body new_employee as&lt;br /&gt;
  3    overriding member function get_phone_number return varchar2 is&lt;br /&gt;
  4    begin&lt;br /&gt;
  5      return self.work_phone;&lt;br /&gt;
  6    end;&lt;br /&gt;
  7    member function get_home_phone_number return varchar2 is&lt;br /&gt;
  8    begin&lt;br /&gt;
  9      return self.phone;&lt;br /&gt;
 10    end;&lt;br /&gt;
 11  end;&lt;br /&gt;
 12  /&lt;br /&gt;
Type body created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select treat( x.p as new_employee ).empno empno,&lt;br /&gt;
  2         x.p.last_name last_name&lt;br /&gt;
  3     from person_table x&lt;br /&gt;
  4    where p is of ( new_employee )&lt;br /&gt;
  5  /&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from person_table;&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table person_table;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop type new_employee;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop type person;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==INSERT Values into a Table that Contains Row Objects (TCRO)==&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; -- INSERT Values into a Table that Contains Row Objects (TCRO)&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(20),&lt;br /&gt;
  3        city VARCHAR2(20),&lt;br /&gt;
  4        state CHAR(2),&lt;br /&gt;
  5        zip CHAR(5));&lt;br /&gt;
  6  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE address_table OF addressType;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE client (name VARCHAR2(20),&lt;br /&gt;
  2    address REF addressType scope is address_table);&lt;br /&gt;
Table 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; INSERT INTO client VALUES (&amp;quot;Jones&amp;quot;,null);&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 client;&lt;br /&gt;
NAME      ADDRESS&lt;br /&gt;
--------- --------------------------------------------------&lt;br /&gt;
Jones&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 client;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table address_table;&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;
==INSERT Values into a Table with the Column Type in It==&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; CREATE OR REPLACE TYPE addressType as OBJECT(&lt;br /&gt;
  2        street VARCHAR2(20),&lt;br /&gt;
  3        city VARCHAR2(20),&lt;br /&gt;
  4        state CHAR(2),&lt;br /&gt;
  5        zip CHAR(5));&lt;br /&gt;
  6  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt; CREATE TABLE emp (empno   NUMBER(3),&lt;br /&gt;
  2                    name    VARCHAR2(20),&lt;br /&gt;
  3                    address addressType);&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 emp VALUES (101, &amp;quot;Adam&amp;quot;, addressType(&amp;quot;1 A St.&amp;quot;,&amp;quot;Mobile&amp;quot;,&amp;quot;AL&amp;quot;,&amp;quot;36608&amp;quot;));&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT * FROM emp;&lt;br /&gt;
     EMPNO NAME&lt;br /&gt;
---------- --------------------&lt;br /&gt;
ADDRESS(STREET, CITY, STATE, ZIP)&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
       101 Adam&lt;br /&gt;
addressType(&amp;quot;1 A St.&amp;quot;, &amp;quot;Mobile&amp;quot;, &amp;quot;AL&amp;quot;, &amp;quot;36608&amp;quot;)&lt;br /&gt;
&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;
SQL&amp;gt;&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;
==Insert value to an objec table as normal 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;
 &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace&lt;br /&gt;
  2  type address as object(&lt;br /&gt;
  3   id number,&lt;br /&gt;
  4   street varchar2(100),&lt;br /&gt;
  5   state varchar2(2),&lt;br /&gt;
  6   zipcode varchar(11)&lt;br /&gt;
  7  )&lt;br /&gt;
  8  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table address_table of address&lt;br /&gt;
  2  /&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 address_table values ( 1, &amp;quot;1910 Oracle Way&amp;quot;, &amp;quot;VA&amp;quot;, &amp;quot;21090&amp;quot; )&lt;br /&gt;
  2  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from address_table;&lt;br /&gt;
&lt;br /&gt;
        ID&lt;br /&gt;
----------&lt;br /&gt;
STREET&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
ST ZIPCODE&lt;br /&gt;
-- -----------&lt;br /&gt;
         1&lt;br /&gt;
1910 Oracle Way&lt;br /&gt;
VA 21090&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; drop table address_table;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Insert value to a specific column for an object table with insert...select statement==&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 or replace type address_type&lt;br /&gt;
  2    as object&lt;br /&gt;
  3    ( city    varchar2(30),&lt;br /&gt;
  4      street  varchar2(30),&lt;br /&gt;
  5      state   varchar2(2),&lt;br /&gt;
  6      zip     number&lt;br /&gt;
  7    )&lt;br /&gt;
  8  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt; create or replace type person_type&lt;br /&gt;
  2    as object&lt;br /&gt;
  3    ( name             varchar2(30),&lt;br /&gt;
  4      dob              date,&lt;br /&gt;
  5      home_address     address_type,&lt;br /&gt;
  6      work_address     address_type&lt;br /&gt;
  7    )&lt;br /&gt;
  8  /&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 people1 of person_type&lt;br /&gt;
  2  /&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 people1(name)&lt;br /&gt;
  2   select rownum from all_objects;&lt;br /&gt;
12213 rows created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table people1;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop type person_type;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt; drop type address_type;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt; --&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Insert value to one column in an 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;
 &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace type address_type&lt;br /&gt;
  2    as object&lt;br /&gt;
  3    ( city    varchar2(30),&lt;br /&gt;
  4      street  varchar2(30),&lt;br /&gt;
  5      state   varchar2(2),&lt;br /&gt;
  6      zip     number&lt;br /&gt;
  7    )&lt;br /&gt;
  8  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt; create or replace type person_type&lt;br /&gt;
  2    as object&lt;br /&gt;
  3    ( name             varchar2(30),&lt;br /&gt;
  4      dob              date,&lt;br /&gt;
  5      home_address     address_type,&lt;br /&gt;
  6      work_address     address_type&lt;br /&gt;
  7    )&lt;br /&gt;
  8  /&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 people1 of person_type&lt;br /&gt;
  2  /&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 people1 (name)&lt;br /&gt;
  2   values ( &amp;quot;Hello World!&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from people1;&lt;br /&gt;
NAME                 DOB&lt;br /&gt;
-------------------- --------------------&lt;br /&gt;
HOME_ADDRESS(CITY, STREET, STATE, ZIP)&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
WORK_ADDRESS(CITY, STREET, STATE, ZIP)&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
Hello World!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1 row selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table people1;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop type person_type;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt; drop type address_type;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt; --&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Insert value with type variable==&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 or replace&lt;br /&gt;
  2  type person as object(&lt;br /&gt;
  3   first_name varchar2(100),&lt;br /&gt;
  4   last_name varchar2(100) )&lt;br /&gt;
  5  /&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 person_table( p person );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; declare&lt;br /&gt;
  2   l_person person;&lt;br /&gt;
  3  begin&lt;br /&gt;
  4   l_person := person( &amp;quot;C&amp;quot;, &amp;quot;B&amp;quot; );&lt;br /&gt;
  5   insert into person_table&lt;br /&gt;
  6   values ( l_person );&lt;br /&gt;
  7  end;&lt;br /&gt;
  8  /&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from person_table;&lt;br /&gt;
&lt;br /&gt;
P(FIRST_NAME, LAST_NAME)&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
PERSON(&amp;quot;C&amp;quot;, &amp;quot;B&amp;quot;)&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table person_table;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Object table insert==&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 or replace type address_type&lt;br /&gt;
  2    as object&lt;br /&gt;
  3    ( city    varchar2(30),&lt;br /&gt;
  4      street  varchar2(30),&lt;br /&gt;
  5      state   varchar2(2),&lt;br /&gt;
  6      zip     number&lt;br /&gt;
  7    )&lt;br /&gt;
  8  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt; create or replace type person_type&lt;br /&gt;
  2    as object&lt;br /&gt;
  3    ( name             varchar2(30),&lt;br /&gt;
  4      dob              date,&lt;br /&gt;
  5      home_address     address_type,&lt;br /&gt;
  6      work_address     address_type&lt;br /&gt;
  7    )&lt;br /&gt;
  8  /&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 people1 of person_type&lt;br /&gt;
  2  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; desc people&lt;br /&gt;
ERROR:&lt;br /&gt;
ORA-24372: invalid object for describe&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into people1 values ( &amp;quot;Tom&amp;quot;, &amp;quot;15-mar-1965&amp;quot;,&lt;br /&gt;
  2    address_type( &amp;quot;Reston&amp;quot;, &amp;quot;123 Main Street&amp;quot;, &amp;quot;Va&amp;quot;, &amp;quot;45678&amp;quot; ),&lt;br /&gt;
  3    address_type( &amp;quot;Redwood&amp;quot;, &amp;quot;1 Oracle Way&amp;quot;, &amp;quot;Ca&amp;quot;, &amp;quot;23456&amp;quot; ) );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; /&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 people1;&lt;br /&gt;
NAME                 DOB&lt;br /&gt;
-------------------- --------------------&lt;br /&gt;
HOME_ADDRESS(CITY, STREET, STATE, ZIP)&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
WORK_ADDRESS(CITY, STREET, STATE, ZIP)&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
Tom                  15-MAR-1965 00:00:00&lt;br /&gt;
ADDRESS_TYPE(&amp;quot;Reston&amp;quot;, &amp;quot;123 Main Street&amp;quot;, &amp;quot;Va&amp;quot;, 45678)&lt;br /&gt;
ADDRESS_TYPE(&amp;quot;Redwood&amp;quot;, &amp;quot;1 Oracle Way&amp;quot;, &amp;quot;Ca&amp;quot;, 23456)&lt;br /&gt;
Tom                  15-MAR-1965 00:00:00&lt;br /&gt;
ADDRESS_TYPE(&amp;quot;Reston&amp;quot;, &amp;quot;123 Main Street&amp;quot;, &amp;quot;Va&amp;quot;, 45678)&lt;br /&gt;
ADDRESS_TYPE(&amp;quot;Redwood&amp;quot;, &amp;quot;1 Oracle Way&amp;quot;, &amp;quot;Ca&amp;quot;, 23456)&lt;br /&gt;
&lt;br /&gt;
2 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table people1;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop type person_type;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt; drop type address_type;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; --&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==One-step INSERTs into an 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;
&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(20),&lt;br /&gt;
  3        city VARCHAR2(20),&lt;br /&gt;
  4        state CHAR(2),&lt;br /&gt;
  5        zip CHAR(5));&lt;br /&gt;
  6  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE address_table OF addressType;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE client (name VARCHAR2(20),&lt;br /&gt;
  2    address REF addressType scope is address_table);&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 client SELECT &amp;quot;Walsh&amp;quot;, REF(aa) FROM address_table aa;&lt;br /&gt;
0 rows created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT name, DEREF(address) FROM client;&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 client;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table address_table;&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;
==Use table function in insert statement for a user-defined type column==&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 (EMPNO NUMBER(4) NOT NULL,&lt;br /&gt;
  2                    ENAME VARCHAR2(10),&lt;br /&gt;
  3                    JOB VARCHAR2(9),&lt;br /&gt;
  4                    MGR NUMBER(4),&lt;br /&gt;
  5                    HIREDATE DATE,&lt;br /&gt;
  6                    SAL NUMBER(7, 2),&lt;br /&gt;
  7                    COMM NUMBER(7, 2),&lt;br /&gt;
  8                    DEPTNO NUMBER(2));&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7369, &amp;quot;SMITH&amp;quot;, &amp;quot;CLERK&amp;quot;,    7902, TO_DATE(&amp;quot;17-DEC-1980&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 800, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7499, &amp;quot;ALLEN&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698, TO_DATE(&amp;quot;20-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1600, 300, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7521, &amp;quot;WARD&amp;quot;,  &amp;quot;SALESMAN&amp;quot;, 7698, TO_DATE(&amp;quot;22-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 500, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7566, &amp;quot;JONES&amp;quot;, &amp;quot;MANAGER&amp;quot;,  7839, TO_DATE(&amp;quot;2-APR-1981&amp;quot;,  &amp;quot;DD-MON-YYYY&amp;quot;), 2975, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7654, &amp;quot;MARTIN&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;28-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 1400, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7698, &amp;quot;BLAKE&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;1-MAY-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2850, NULL, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7782, &amp;quot;CLARK&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;9-JUN-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2450, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7788, &amp;quot;SCOTT&amp;quot;, &amp;quot;ANALYST&amp;quot;, 7566,TO_DATE(&amp;quot;09-DEC-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7839, &amp;quot;KING&amp;quot;, &amp;quot;PRESIDENT&amp;quot;, NULL,TO_DATE(&amp;quot;17-NOV-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 5000, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7844, &amp;quot;TURNER&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;8-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1500, 0, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7876, &amp;quot;ADAMS&amp;quot;, &amp;quot;CLERK&amp;quot;, 7788,TO_DATE(&amp;quot;12-JAN-1983&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1100, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7900, &amp;quot;JAMES&amp;quot;, &amp;quot;CLERK&amp;quot;, 7698,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 950, NULL, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7902, &amp;quot;FORD&amp;quot;, &amp;quot;ANALYST&amp;quot;, 7566,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7934, &amp;quot;MILLER&amp;quot;, &amp;quot;CLERK&amp;quot;, 7782,TO_DATE(&amp;quot;23-JAN-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1300, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE DEPT (DEPTNO NUMBER(2),DNAME VARCHAR2(14),LOC VARCHAR2(13) );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO DEPT VALUES (10, &amp;quot;ACCOUNTING&amp;quot;, &amp;quot;NEW YORK&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO DEPT VALUES (20, &amp;quot;RESEARCH&amp;quot;, &amp;quot;DALLAS&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO DEPT VALUES (30, &amp;quot;SALES&amp;quot;, &amp;quot;CHICAGO&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO DEPT VALUES (40, &amp;quot;OPERATIONS&amp;quot;, &amp;quot;BOSTON&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace type emp_type&lt;br /&gt;
  2    as object&lt;br /&gt;
  3    (empno       number(4),&lt;br /&gt;
  4     ename       varchar2(10),&lt;br /&gt;
  5     job         varchar2(9),&lt;br /&gt;
  6     mgr         number(4),&lt;br /&gt;
  7     hiredate    date,&lt;br /&gt;
  8     sal         number(7, 2),&lt;br /&gt;
  9     comm        number(7, 2)&lt;br /&gt;
 10    );&lt;br /&gt;
 11  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace type emp_tab_type as table of emp_type;&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt; create table dept_and_emp&lt;br /&gt;
  2    (deptno number(2) primary key,&lt;br /&gt;
  3     dname     varchar2(14),&lt;br /&gt;
  4     loc       varchar2(13),&lt;br /&gt;
  5     emps      emp_tab_type&lt;br /&gt;
  6    )&lt;br /&gt;
  7    nested table emps store as emps_nt;&lt;br /&gt;
Table 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; insert into dept_and_emp&lt;br /&gt;
  2    select dept.*,&lt;br /&gt;
  3       CAST( multiset( select empno, ename, job, mgr, hiredate, sal, comm from emp ) AS emp_tab_type )&lt;br /&gt;
  4      from dept&lt;br /&gt;
  5  /&lt;br /&gt;
4 rows created.&lt;br /&gt;
SQL&amp;gt; insert into table&lt;br /&gt;
  2    ( select emps from dept_and_emp where deptno = 10 )&lt;br /&gt;
  3    values&lt;br /&gt;
  4    ( 1234, &amp;quot;NewEmp&amp;quot;, &amp;quot;CLERK&amp;quot;, 7782, sysdate, 1200, null );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table emp cascade constraints;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop table dept cascade constraints;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop table dept_and_emp;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop type emp_tab_type;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt; drop type emp_type;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; --&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>