<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL_Tutorial%2FObject_Oriented%2FInsert</id>
		<title>Oracle PL/SQL Tutorial/Object Oriented/Insert - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL_Tutorial%2FObject_Oriented%2FInsert"/>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Object_Oriented/Insert&amp;action=history"/>
		<updated>2026-05-24T05:19:46Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Object_Oriented/Insert&amp;diff=3004&amp;oldid=prev</id>
		<title> в 13:45, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Object_Oriented/Insert&amp;diff=3004&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://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Object_Oriented/Insert&amp;diff=3005&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Object_Oriented/Insert&amp;diff=3005&amp;oldid=prev"/>
				<updated>2010-05-26T10:04:49Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Inserting a row into an object table by supplying the values in the same way in a relational==&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 ProductType AS OBJECT (&lt;br /&gt;
  2    id          NUMBER,&lt;br /&gt;
  3    name        VARCHAR2(15),&lt;br /&gt;
  4    description VARCHAR2(22),&lt;br /&gt;
  5    price       NUMBER(5, 2),&lt;br /&gt;
  6    days_valid  NUMBER&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 object_products OF ProductType&lt;br /&gt;
  2  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO object_products (&lt;br /&gt;
  2    id, name, description, price, days_valid&lt;br /&gt;
  3  ) VALUES (&lt;br /&gt;
  4    2, &amp;quot;AAA&amp;quot;, &amp;quot;BBB&amp;quot;, 2.99, 5&lt;br /&gt;
  5  );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from object_products;&lt;br /&gt;
 ID NAME            DESCRIPTION                 PRICE DAYS_VALID&lt;br /&gt;
--- --------------- ---------------------- ---------- ----------&lt;br /&gt;
  2 AAA             BBB                          2.99          5&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table object_products;&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;
== Inserting a row of object 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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE Or Replace TYPE ProductType AS OBJECT (&lt;br /&gt;
  2    id          NUMBER,&lt;br /&gt;
  3    name        VARCHAR2(15),&lt;br /&gt;
  4    description VARCHAR2(22),&lt;br /&gt;
  5    price       NUMBER(5, 2),&lt;br /&gt;
  6    days_valid  NUMBER&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 object_products OF ProductType&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 object_products VALUES (&lt;br /&gt;
  2    ProductType(1, &amp;quot;AAA&amp;quot;, &amp;quot;BBB&amp;quot;, 3.95, 10)&lt;br /&gt;
  3  );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from object_products;&lt;br /&gt;
 ID NAME            DESCRIPTION                 PRICE DAYS_VALID&lt;br /&gt;
--- --------------- ---------------------- ---------- ----------&lt;br /&gt;
  1 AAA             BBB                          3.95         10&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table object_products;&lt;br /&gt;
Table dropped.&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 Table with object type column==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;When inserting a row into a table containing a column object, you must supply the attribute for that object using a constructor.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The constructor has the same name as the object type and accepts parameters fo attributes of the object.&amp;lt;/p&amp;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; CREATE Or Replace TYPE ProductType AS OBJECT (&lt;br /&gt;
  2    id          NUMBER,&lt;br /&gt;
  3    name        VARCHAR2(15),&lt;br /&gt;
  4    description VARCHAR2(22),&lt;br /&gt;
  5    price       NUMBER(5, 2),&lt;br /&gt;
  6    days_valid  NUMBER&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 products (&lt;br /&gt;
  2    product           ProductType,&lt;br /&gt;
  3    count NUMBER&lt;br /&gt;
  4  );&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 products (product,count) VALUES (&lt;br /&gt;
  2            ProductType(1, &amp;quot;AA&amp;quot;, &amp;quot;BBB&amp;quot;, 3.95, 10),50&lt;br /&gt;
  3  );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO products (product,count) VALUES (&lt;br /&gt;
  2            ProductType(2, &amp;quot;CC&amp;quot;, &amp;quot;DDDD&amp;quot;, 2.99, 5),25&lt;br /&gt;
  3  );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from products;&lt;br /&gt;
PRODUCT(ID, NAME, DESCRIPTION, PRICE, DAYS_VALID)     COUNT&lt;br /&gt;
----------&lt;br /&gt;
PRODUCTTYPE(1, &amp;quot;AA&amp;quot;, &amp;quot;BBB&amp;quot;, 3.95, 10)                 50&lt;br /&gt;
PRODUCTTYPE(2, &amp;quot;CC&amp;quot;, &amp;quot;DDDD&amp;quot;, 2.99, 5)                 25&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table products;&lt;br /&gt;
Table dropped.&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;
== INSERT object instance by calling its constructor==&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 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;&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      line2 :=addressLine2;&lt;br /&gt;
 16      city :=address_city;&lt;br /&gt;
 17      state_code :=address_state;&lt;br /&gt;
 18      zip :=address_zip;&lt;br /&gt;
 19    END set_address;&lt;br /&gt;
 20  END;&lt;br /&gt;
 21  /&lt;br /&gt;
Type body created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE address_master OF address;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO address_master VALUES (address(&amp;quot;19 J&amp;quot;,&amp;quot;Reading Rd&amp;quot;,&amp;quot;Vancouver&amp;quot;,&amp;quot;NJ&amp;quot;,&amp;quot;00000&amp;quot;));&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from address_master;&lt;br /&gt;
LINE1                LINE2                CITY                 ST&lt;br /&gt;
-------------------- -------------------- -------------------- --&lt;br /&gt;
ZIP&lt;br /&gt;
-------------&lt;br /&gt;
19 J                 Reading Rd           Vancouver            NJ&lt;br /&gt;
00000&lt;br /&gt;
&lt;br /&gt;
1 row selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2    addressValue_ref REF address;&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4    INSERT INTO address_master a VALUES (address(&amp;quot;5 Street&amp;quot;,&amp;quot;#101C&amp;quot;,&amp;quot;F&amp;quot;,&amp;quot;NY&amp;quot;,&amp;quot;00000&amp;quot;)) RETURNING REF(a)INTO addressValue_ref;&lt;br /&gt;
  5  END;&lt;br /&gt;
  6  /&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table address_master;&lt;br /&gt;
Table dropped.&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;
== Insert statement with nested type==&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; create type addressType as object&lt;br /&gt;
  2  (Street   VARCHAR2(50),&lt;br /&gt;
  3  City      VARCHAR2(25),&lt;br /&gt;
  4  State     CHAR(2),&lt;br /&gt;
  5  Zip       NUMBER);&lt;br /&gt;
  6  /&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create type personType as object&lt;br /&gt;
  2  (Name     VARCHAR2(25),&lt;br /&gt;
  3   Address  addressType);&lt;br /&gt;
  4  /&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  (Name     VARCHAR2(25),&lt;br /&gt;
  3   Address  addressType);&lt;br /&gt;
  4  /&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table myemp&lt;br /&gt;
  2  (cid    NUMBER,&lt;br /&gt;
  3   Person         personType);&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into myemp values(1,personType(&amp;quot;SomeName&amp;quot;,addressType(&amp;quot;StreetValue&amp;quot;,&amp;quot;CityValue&amp;quot;,&amp;quot;ST&amp;quot;,11111)));&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 C.cid, C.Person.Name&lt;br /&gt;
  2    from myemp C;&lt;br /&gt;
                                                              &lt;br /&gt;
       CID  PERSON.NAME&lt;br /&gt;
----------  -------------------------&lt;br /&gt;
         1  SomeName&lt;br /&gt;
                   &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myemp;&lt;br /&gt;
SQL&amp;gt; drop type personType;&lt;br /&gt;
SQL&amp;gt; drop type addressType;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TYPE ADDRESS_OBJ 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 emp (&lt;br /&gt;
  2  empno NUMBER(3),&lt;br /&gt;
  3  name VARCHAR2(20),&lt;br /&gt;
  4  address ADDRESS_OBJ)&lt;br /&gt;
  5  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO emp VALUES (101, &amp;quot;A&amp;quot;,ADDRESS_OBJ(&amp;quot;1 St.&amp;quot;,&amp;quot;AAA&amp;quot;,&amp;quot;AL&amp;quot;,&amp;quot;36608&amp;quot;))&lt;br /&gt;
  2  /&lt;br /&gt;
1 row created.&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 A&lt;br /&gt;
ADDRESS_OBJ(&amp;quot;1 St.&amp;quot;, &amp;quot;AAA&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; drop table emp;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop type ADDRESS_OBJ;&lt;br /&gt;
Type dropped.&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;
== Insert value to a table with &amp;quot;table of custom type&amp;quot; as table column type==&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 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;&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 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&lt;br /&gt;
  2    as table of emp_type&lt;br /&gt;
  3  /&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; alter table emps_nt add constraint emps_empno_unique&lt;br /&gt;
  2               unique(empno)&lt;br /&gt;
  3  /&lt;br /&gt;
Table altered.&lt;br /&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&lt;br /&gt;
  4                         from emp&lt;br /&gt;
  5                         where emp.deptno = dept.deptno ) AS emp_tab_type )&lt;br /&gt;
  6      from dept&lt;br /&gt;
  7  /&lt;br /&gt;
4 rows created.&lt;br /&gt;
SQL&amp;gt; select deptno, dname, loc, d.emps AS employees&lt;br /&gt;
  2    from dept_and_emp d&lt;br /&gt;
  3    where deptno = 10&lt;br /&gt;
  4  /&lt;br /&gt;
    DEPTNO DNAME          LOC&lt;br /&gt;
---------- -------------- -------------&lt;br /&gt;
EMPLOYEES(EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM)&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
        10 ACCOUNTING     NEW YORK&lt;br /&gt;
EMP_TAB_TYPE(EMP_TYPE(7782, &amp;quot;CLARK&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839, &amp;quot;09-JUN-81&amp;quot;, 2450, NULL), EMP_TYPE(7839, &amp;quot;KING&lt;br /&gt;
&amp;quot;, &amp;quot;PRESIDENT&amp;quot;, NULL, &amp;quot;17-NOV-81&amp;quot;, 5000, NULL), EMP_TYPE(7934, &amp;quot;MILLER&amp;quot;, &amp;quot;CLERK&amp;quot;, 7782, &amp;quot;23-JAN-82&amp;quot;,&lt;br /&gt;
 1300, NULL))&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; drop table dept cascade constraint;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop table emp;&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;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Object Relational 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 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;||&lt;br /&gt;
  6              SELF.state_code||&amp;quot; &amp;quot;||SELF.zip);&lt;br /&gt;
  7    END get_address;&lt;br /&gt;
  8    MEMBER PROCEDURE set_address (addressLine1 VARCHAR2,&lt;br /&gt;
  9                  addressLine2 VARCHAR2,&lt;br /&gt;
 10                  address_city VARCHAR2,&lt;br /&gt;
 11                  address_state VARCHAR2,&lt;br /&gt;
 12                  address_zip VARCHAR2)&lt;br /&gt;
 13    IS&lt;br /&gt;
 14    BEGIN&lt;br /&gt;
 15      line1 :=addressLine1;&lt;br /&gt;
 16&lt;br /&gt;
 17      line2 :=addressLine2;&lt;br /&gt;
 18&lt;br /&gt;
 19      city :=address_city;&lt;br /&gt;
 20&lt;br /&gt;
 21      state_code :=address_state;&lt;br /&gt;
 22&lt;br /&gt;
 23      zip :=address_zip;&lt;br /&gt;
 24&lt;br /&gt;
 25    END set_address;&lt;br /&gt;
 26  END;&lt;br /&gt;
 27  /&lt;br /&gt;
Type body created.&lt;br /&gt;
SQL&amp;gt;&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 address);&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (101,&amp;quot;L&amp;quot;,&amp;quot;BULUSU&amp;quot;,null,&lt;br /&gt;
  2  address(&amp;quot;50 UNION SQUARE&amp;quot;,&amp;quot;SUITE 101&amp;quot;,&amp;quot;NEW YORK&amp;quot;,&amp;quot;NY&amp;quot;,&amp;quot;10020&amp;quot;));&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from employee;&lt;br /&gt;
 EMPID LASTNAME                       FIRSTNAME&lt;br /&gt;
------ ------------------------------ ------------------------------&lt;br /&gt;
MI&lt;br /&gt;
--&lt;br /&gt;
EMP_ADDRESS(LINE1, LINE2, CITY, STATE_CODE, ZIP)&lt;br /&gt;
----------------------------------------------------------------------&lt;br /&gt;
   101 L                              BULUSU&lt;br /&gt;
nu&lt;br /&gt;
ll&lt;br /&gt;
ADDRESS(&amp;quot;50 UNION SQUARE&amp;quot;, &amp;quot;SUITE 101&amp;quot;, &amp;quot;NEW YORK&amp;quot;, &amp;quot;NY&amp;quot;, &amp;quot;10020&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
1 row 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;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Reference column name 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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace type address_type as object&lt;br /&gt;
  2    ( city    varchar2(30),&lt;br /&gt;
  3      street  varchar2(30),&lt;br /&gt;
  4      state   varchar2(2),&lt;br /&gt;
  5      zip     number&lt;br /&gt;
  6    )&lt;br /&gt;
  7  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt; create or replace type person_type as object&lt;br /&gt;
  2    ( name             varchar2(30),&lt;br /&gt;
  3      dob              date,&lt;br /&gt;
  4      home_address     address_type,&lt;br /&gt;
  5      work_address     address_type&lt;br /&gt;
  6    )&lt;br /&gt;
  7  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt; create table people of person_type&lt;br /&gt;
  2  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt; insert into people 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;1 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 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; insert into people(name) select rownum from all_objects;&lt;br /&gt;
12663 rows created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table people;&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;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Reference type constructor in insert 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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace type address_type as object&lt;br /&gt;
  2    ( city    varchar2(30),&lt;br /&gt;
  3      street  varchar2(30),&lt;br /&gt;
  4      state   varchar2(2),&lt;br /&gt;
  5      zip     number&lt;br /&gt;
  6    )&lt;br /&gt;
  7  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt; create or replace type person_type as object&lt;br /&gt;
  2    ( name             varchar2(30),&lt;br /&gt;
  3      dob              date,&lt;br /&gt;
  4      home_address     address_type,&lt;br /&gt;
  5      work_address     address_type&lt;br /&gt;
  6    )&lt;br /&gt;
  7  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt; create table people of person_type&lt;br /&gt;
  2  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt; insert into people values ( &amp;quot;T&amp;quot;, &amp;quot;15-mar-1965&amp;quot;,&lt;br /&gt;
  2                   address_type( &amp;quot;R&amp;quot;, &amp;quot;1 Street&amp;quot;, &amp;quot;Va&amp;quot;, &amp;quot;45678&amp;quot; ),&lt;br /&gt;
  3                   address_type( &amp;quot;A&amp;quot;, &amp;quot;1 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; insert into people (name) 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;&lt;br /&gt;
SQL&amp;gt; drop table people;&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.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Use user-defined type in insert 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;
SQL&amp;gt; create type addressType as object&lt;br /&gt;
  2  (Street  VARCHAR2(50),&lt;br /&gt;
  3   City    VARCHAR2(25),&lt;br /&gt;
  4   State   CHAR(2),&lt;br /&gt;
  5   Zip     NUMBER);&lt;br /&gt;
  6  /&lt;br /&gt;
SQL&amp;gt; create type personType as object&lt;br /&gt;
  2  (Name     VARCHAR2(25),&lt;br /&gt;
  3   Address  addressType);&lt;br /&gt;
  4  /&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table CUSTOMER(&lt;br /&gt;
  2    cid  NUMBER,&lt;br /&gt;
  3    Person       personType&lt;br /&gt;
  4  );&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into CUSTOMER values(1,personType(&amp;quot;SomeName&amp;quot;,addressType(&amp;quot;Street&amp;quot;,&amp;quot;City&amp;quot;,&amp;quot;ST&amp;quot;,11111)));&lt;br /&gt;
SQL&amp;gt; insert into CUSTOMER values(1,personType(&amp;quot;SomeName&amp;quot;,addressType(&amp;quot;Street2&amp;quot;,&amp;quot;City2&amp;quot;,&amp;quot;ST&amp;quot;,11111)));&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop type personType force;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop type addressType force;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table CUSTOMER;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>