A Relational Table with Object Types
 
You can create a user-defined datatype and then use the new datatype in a relational table.  
The data actually resides as column values in the table, rather than the column value being a pointer (REF) to the data.
 
  | 
    
    This methodology creates a column object or nested object that
   
   | 
   | 
  
    
   | 
 
 - Does not have an object identifier.
 
 - Cannot be referenced using the 
REF operator. 
 
 
  
 
  
   
     SQL> CREATE TYPE  address_typ  AS OBJECT (
   2    address1   VARCHAR2(32),
   3    address2   VARCHAR2(32),
   4    city       VARCHAR2(16),
   5    state      CHAR(2),
   6    zip        CHAR(5) );
 Type created.
 SQL> CREATE TABLE  customer (
   2    id            INTEGER PRIMARY KEY,
   3    cust_address  address_typ );
 Table created. 
      | 
     
    
   | 
   | 
  
    
      
     
    
      
    
   
   | 
 
The address_typ type is used as the datatype for the cust_address column of a customer relational table.
When object types are instantiated in this way, you create a column object or nested object.
If the user-defined type is in another schema, you must use the schema name as a qualifier of the datatype.  
For example, if user scott owns scotts_typ object, use:
   CREATE TABLE  my_table( x scott.scotts_typ );