<?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%2FConstructor</id>
		<title>Oracle PL/SQL Tutorial/Object Oriented/Constructor - История изменений</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%2FConstructor"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Object_Oriented/Constructor&amp;action=history"/>
		<updated>2026-04-05T12:08:10Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Object_Oriented/Constructor&amp;diff=2996&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/Constructor&amp;diff=2996&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/Constructor&amp;diff=2997&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/Constructor&amp;diff=2997&amp;oldid=prev"/>
				<updated>2010-05-26T10:04: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;== Construct user-defined type with subquery==&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 table course_schedule&lt;br /&gt;
  2  ( course     VARCHAR2(6)&lt;br /&gt;
  3  , begindate  DATE&lt;br /&gt;
  4  , trainer    NUMBER(4)&lt;br /&gt;
  5  , location   VARCHAR2(20)) ;&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 course_schedule values (&amp;quot;SQL&amp;quot;,date &amp;quot;1999-04-12&amp;quot;,1,&amp;quot;VANCOUVER&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into course_schedule values (&amp;quot;OAU&amp;quot;,date &amp;quot;1999-08-10&amp;quot;,2,&amp;quot;CHICAGO&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into course_schedule values (&amp;quot;SQL&amp;quot;,date &amp;quot;1999-10-04&amp;quot;,3,&amp;quot;SEATTLE&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into course_schedule values (&amp;quot;SQL&amp;quot;,date &amp;quot;1999-12-13&amp;quot;,4,&amp;quot;DALLAS&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into course_schedule values (&amp;quot;JAV&amp;quot;,date &amp;quot;1999-12-13&amp;quot;,5,&amp;quot;SEATTLE&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into course_schedule values (&amp;quot;XML&amp;quot;,date &amp;quot;2000-02-03&amp;quot;,6,&amp;quot;VANCOUVER&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into course_schedule values (&amp;quot;JAV&amp;quot;,date &amp;quot;2000-02-01&amp;quot;,7,&amp;quot;DALLAS&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into course_schedule values (&amp;quot;PLS&amp;quot;,date &amp;quot;2000-09-11&amp;quot;,8,&amp;quot;VANCOUVER&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into course_schedule values (&amp;quot;XML&amp;quot;,date &amp;quot;2000-09-18&amp;quot;,NULL,&amp;quot;SEATTLE&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into course_schedule values (&amp;quot;OAU&amp;quot;,date &amp;quot;2000-09-27&amp;quot;,9,&amp;quot;DALLAS&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into course_schedule values (&amp;quot;ERM&amp;quot;,date &amp;quot;2001-01-15&amp;quot;,10, NULL    );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into course_schedule values (&amp;quot;PRO&amp;quot;,date &amp;quot;2001-02-19&amp;quot;,NULL,&amp;quot;VANCOUVER&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into course_schedule values (&amp;quot;RSD&amp;quot;,date &amp;quot;2001-02-24&amp;quot;,8,&amp;quot;CHICAGO&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create type addressType as object&lt;br /&gt;
  2  ( street varchar2(20)&lt;br /&gt;
  3  , nr     varchar2(5)&lt;br /&gt;
  4  , pcode  varchar2(6)&lt;br /&gt;
  5  , city   varchar2(20)&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; describe addressType&lt;br /&gt;
 Name                                      Null?    Type&lt;br /&gt;
 ----------------------------------------- -------- ----------------------------&lt;br /&gt;
 STREET                                             VARCHAR2(20)&lt;br /&gt;
 NR                                                 VARCHAR2(5)&lt;br /&gt;
 PCODE                                              VARCHAR2(6)&lt;br /&gt;
 CITY                                               VARCHAR2(20)&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select type_name, typecode from user_types;&lt;br /&gt;
TYPE_NAME                      TYPECODE&lt;br /&gt;
------------------------------ ------------------------------&lt;br /&gt;
DEBUG_O                        OBJECT&lt;br /&gt;
NUMBERLIST_T                   COLLECTION&lt;br /&gt;
ADDRESS2                       OBJECT&lt;br /&gt;
ZIP_CODE                       OBJECT&lt;br /&gt;
NUM_VARRAY                     COLLECTION&lt;br /&gt;
NUM_TABLE                      COLLECTION&lt;br /&gt;
ADD_LIST                       COLLECTION&lt;br /&gt;
HOME_ADD_LIST                  COLLECTION&lt;br /&gt;
SYS_PLSQL_14797_54_1           COLLECTION&lt;br /&gt;
SYS_PLSQL_14797_DUMMY_1        COLLECTION&lt;br /&gt;
SYS_PLSQL_14797_9_1            OBJECT&lt;br /&gt;
VCARRAY                        COLLECTION&lt;br /&gt;
STRINGS_NT                     COLLECTION&lt;br /&gt;
RIVER                          OBJECT&lt;br /&gt;
WATERFALL                      OBJECT&lt;br /&gt;
SQLMONTH_TABLETYPE             COLLECTION&lt;br /&gt;
ORD_TYPE                       OBJECT&lt;br /&gt;
ORD_TABLE                      COLLECTION&lt;br /&gt;
DTARRAY                        COLLECTION&lt;br /&gt;
TYPE_NAME                      TYPECODE&lt;br /&gt;
------------------------------ ------------------------------&lt;br /&gt;
NMARRAY                        COLLECTION&lt;br /&gt;
EMP_T                          OBJECT&lt;br /&gt;
ASCII_TABLE_TYPE               OBJECT&lt;br /&gt;
PHONE_NUM_REC_TYPE             OBJECT&lt;br /&gt;
NUMBERVARRAY                   COLLECTION&lt;br /&gt;
ADDRESSTYPE                    OBJECT&lt;br /&gt;
25 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table o as select course, begindate, trainer&lt;br /&gt;
  2  from   course_schedule;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; alter table o add (address addressType);&lt;br /&gt;
Table altered.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; update o&lt;br /&gt;
  2  set    o.address =&lt;br /&gt;
  3         addressType(&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&lt;br /&gt;
  4                (select initcap(x.location)&lt;br /&gt;
  5                 from   course_schedule     x&lt;br /&gt;
  6                 where  x.course    = o.course&lt;br /&gt;
  7                 and    x.begindate = o.begindate)&lt;br /&gt;
  8  );&lt;br /&gt;
13 rows updated.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table o;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop type addressType force;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table course_schedule;&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;
== Demonstrates object initialization.==&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 BookType AS OBJECT (&lt;br /&gt;
  2     rebate   NUMBER (10, 4),&lt;br /&gt;
  3     price           NUMBER (10, 2),&lt;br /&gt;
  4     CONSTRUCTOR FUNCTION BookType (price NUMBER)&lt;br /&gt;
  5        RETURN SELF AS RESULT&lt;br /&gt;
  6  )&lt;br /&gt;
  7  INSTANTIABLE FINAL;&lt;br /&gt;
  8  /&lt;br /&gt;
SP2-0816: Type created with compilation warnings&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TYPE BODY BookType&lt;br /&gt;
  2  AS&lt;br /&gt;
  3     CONSTRUCTOR FUNCTION BookType (price NUMBER)&lt;br /&gt;
  4        RETURN SELF AS RESULT&lt;br /&gt;
  5     AS&lt;br /&gt;
  6     BEGIN&lt;br /&gt;
  7        SELF.price := price * .9;&lt;br /&gt;
  8        RETURN;&lt;br /&gt;
  9     END BookType;&lt;br /&gt;
 10  END;&lt;br /&gt;
 11  /&lt;br /&gt;
SP2-0818: Type Body created with compilation warnings&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2     v_price   BookType;&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4     v_price.price := 75;&lt;br /&gt;
  5     DBMS_OUTPUT.put_line (v_price.price);&lt;br /&gt;
  6  END;&lt;br /&gt;
  7  /&lt;br /&gt;
75&lt;br /&gt;
PL/SQL procedure successfully completed.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Inserting a row into an object table using 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; 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;
== Use constructor to create new objects==&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 BookType AS OBJECT (&lt;br /&gt;
  2     rebate   NUMBER (10, 4),&lt;br /&gt;
  3     price           NUMBER (10, 2),&lt;br /&gt;
  4     CONSTRUCTOR FUNCTION BookType (price NUMBER)&lt;br /&gt;
  5        RETURN SELF AS RESULT&lt;br /&gt;
  6  )&lt;br /&gt;
  7  INSTANTIABLE FINAL;&lt;br /&gt;
  8  /&lt;br /&gt;
SP2-0816: Type created with compilation warnings&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TYPE BODY BookType&lt;br /&gt;
  2  AS&lt;br /&gt;
  3     CONSTRUCTOR FUNCTION BookType (price NUMBER)&lt;br /&gt;
  4        RETURN SELF AS RESULT&lt;br /&gt;
  5     AS&lt;br /&gt;
  6     BEGIN&lt;br /&gt;
  7        SELF.price := price * .9;&lt;br /&gt;
  8        RETURN;&lt;br /&gt;
  9     END BookType;&lt;br /&gt;
 10  END;&lt;br /&gt;
 11  /&lt;br /&gt;
SP2-0818: Type Body created with compilation warnings&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2     v_price   BookType := BookType (NULL, NULL);&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4     v_price.price := 75;&lt;br /&gt;
  5     DBMS_OUTPUT.put_line (v_price.price);&lt;br /&gt;
  6  END;&lt;br /&gt;
  7  /&lt;br /&gt;
75&lt;br /&gt;
PL/SQL procedure successfully completed.&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;
== User-Defined Constructors==&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 EmployeeType 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    CONSTRUCTOR FUNCTION EmployeeType(&lt;br /&gt;
  8      p_id         NUMBER,&lt;br /&gt;
  9      p_first_name VARCHAR2,&lt;br /&gt;
 10      p_last_name  VARCHAR2&lt;br /&gt;
 11    ) RETURN SELF AS RESULT,&lt;br /&gt;
 12    CONSTRUCTOR FUNCTION EmployeeType(&lt;br /&gt;
 13      p_id         NUMBER,&lt;br /&gt;
 14      p_first_name VARCHAR2,&lt;br /&gt;
 15      p_last_name  VARCHAR2,&lt;br /&gt;
 16      p_dob        DATE,&lt;br /&gt;
 17      p_phone      VARCHAR2&lt;br /&gt;
 18    ) RETURN SELF AS RESULT&lt;br /&gt;
 19  );&lt;br /&gt;
 20  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TYPE BODY EmployeeType AS&lt;br /&gt;
  2    CONSTRUCTOR FUNCTION EmployeeType(&lt;br /&gt;
  3      p_id         NUMBER,&lt;br /&gt;
  4      p_first_name VARCHAR2,&lt;br /&gt;
  5      p_last_name  VARCHAR2&lt;br /&gt;
  6    ) RETURN SELF AS RESULT IS&lt;br /&gt;
  7    BEGIN&lt;br /&gt;
  8      SELF.id := p_id;&lt;br /&gt;
  9      SELF.first_name := p_first_name;&lt;br /&gt;
 10      SELF.last_name := p_last_name;&lt;br /&gt;
 11      SELF.dob := SYSDATE;&lt;br /&gt;
 12      SELF.phone := &amp;quot;555-1212&amp;quot;;&lt;br /&gt;
 13      RETURN;&lt;br /&gt;
 14    END;&lt;br /&gt;
 15    CONSTRUCTOR FUNCTION EmployeeType(&lt;br /&gt;
 16      p_id         NUMBER,&lt;br /&gt;
 17      p_first_name VARCHAR2,&lt;br /&gt;
 18      p_last_name  VARCHAR2,&lt;br /&gt;
 19      p_dob        DATE,&lt;br /&gt;
 20      p_phone      VARCHAR2&lt;br /&gt;
 21    ) RETURN SELF AS RESULT IS&lt;br /&gt;
 22    BEGIN&lt;br /&gt;
 23      SELF.id := p_id;&lt;br /&gt;
 24      SELF.first_name := p_first_name;&lt;br /&gt;
 25      SELF.last_name := p_last_name;&lt;br /&gt;
 26      SELF.dob := p_dob;&lt;br /&gt;
 27      SELF.phone := p_phone;&lt;br /&gt;
 28      RETURN;&lt;br /&gt;
 29    END;&lt;br /&gt;
 30  END;&lt;br /&gt;
 31  /&lt;br /&gt;
Type body created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DESC EmployeeType;&lt;br /&gt;
 Name               Null?    Type&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
 ID                          NUMBER&lt;br /&gt;
 FIRST_NAME                  VARCHAR2(10)&lt;br /&gt;
 LAST_NAME                   VARCHAR2(10)&lt;br /&gt;
 DOB                         DATE&lt;br /&gt;
 PHONE                       VARCHAR2(12)&lt;br /&gt;
METHOD&lt;br /&gt;
------&lt;br /&gt;
 FINAL CONSTRUCTOR FUNCTION EMPLOYEETYPE RETURNS SELF AS RESULT&lt;br /&gt;
 Argument Name                  Type                    In/Out Default?&lt;br /&gt;
 ------------------------------ ----------------------- ------ --------&lt;br /&gt;
 P_ID                           NUMBER                  IN&lt;br /&gt;
 P_FIRST_NAME                   VARCHAR2                IN&lt;br /&gt;
 P_LAST_NAME                    VARCHAR2                IN&lt;br /&gt;
METHOD&lt;br /&gt;
------&lt;br /&gt;
 FINAL CONSTRUCTOR FUNCTION EMPLOYEETYPE RETURNS SELF AS RESULT&lt;br /&gt;
 Argument Name                  Type                    In/Out Default?&lt;br /&gt;
 ------------------------------ ----------------------- ------ --------&lt;br /&gt;
 P_ID                           NUMBER                  IN&lt;br /&gt;
 P_FIRST_NAME                   VARCHAR2                IN&lt;br /&gt;
 P_LAST_NAME                    VARCHAR2                IN&lt;br /&gt;
 P_DOB                          DATE                    IN&lt;br /&gt;
 P_PHONE                        VARCHAR2                IN&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE emp OF EmployeeType;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; desc emp;&lt;br /&gt;
 Name                Null?    Type&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
 ID                           NUMBER&lt;br /&gt;
 FIRST_NAME                   VARCHAR2(10)&lt;br /&gt;
 LAST_NAME                    VARCHAR2(10)&lt;br /&gt;
 DOB                          DATE&lt;br /&gt;
 PHONE                        VARCHAR2(12)&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;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Using the default constructor (the name of the class)==&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; INSERT INTO emp VALUES (101, &amp;quot;A&amp;quot;,ADDRESS_OBJ(&amp;quot;1 St.&amp;quot;,&amp;quot;M&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 A&lt;br /&gt;
ADDRESS_OBJ(&amp;quot;1 St.&amp;quot;, &amp;quot;M&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;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>