Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Whats the diffrence

Re: Whats the diffrence

From: Amogh <amogh.r_at_nospam.com>
Date: Fri, 07 Jul 2006 18:17:51 +0530
Message-ID: <60trg.40$ZD3.53@news.oracle.com>


Khurram wrote:
> hi
>
> CREATE TYPE person AS OBJECT (
> name VARCHAR2(30),
> phone VARCHAR2(20) );
>
> CREATE TABLE person_table OF person;
>
>
> SQL> CREATE TABLE person_table OF person;
>
> Table created.
>
> SQL> INSERT INTO person_table VALUES ('KHURRAM','6987270');
>
> 1 row created.
>
> SQL> SELECT * FROM person_table;
>
> NAME PHONE
> ------------------------------ --------------------
> KHURRAM 6987270
>
> SQL> CREATE TABLE person_table1 (a PERSON);
>
> Table created.
>
> SQL> INSERT INTO person_table1 VALUES (person('KHURRAM','6987270'));
>
> 1 row created.
>
> SQL> SELECT * FROM person_table1;
>
> A(NAME, PHONE)
> ---------------------------------------------------------------------
> PERSON('KHURRAM', '6987270')
>
> My question is whats the differnce between
>
> CREATE TABLE <tablename> OF <object type name>;
>
> and
>
> CREATE TABLE <tablename>
> (<columnname> <object type name>);
>
> Which is best to use ?
> Is there any performance,syntax issue?
>
> Khurram
>

 > CREATE TABLE <tablename> OF <object type name>;  >
is an Object Table, where every row is an Object, more known as a Row Object.

 > CREATE TABLE <tablename>
 > (<columnname> <object type name>);

is a Relational table with an Object column. Simple, where the object-type is a column object.

By default every row-object will be associated with a OID (object id), where as a column object will not be.

One can create a reference datatype (REF) only to row objects. REF's cannot be created to column objects. Depends on the storage considerations one has for his/her schema.

Rgds.
Amogh Received on Fri Jul 07 2006 - 07:47:51 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US