SQL>
SQL> CREATE OR REPLACE TYPE addressType as OBJECT(
2 street VARCHAR2(20),
3 city VARCHAR2(20),
4 state CHAR(2),
5 zip CHAR(5))
6 /
Type created.
SQL>
SQL> CREATE TABLE address_table OF addressType
2 /
Table created.
SQL>
SQL> CREATE TABLE client (name VARCHAR2(20),
2 address REF addressType scope is address_table);
Table created.
SQL>
SQL> DESC client;
Name Null? Type
----------
NAME VARCHAR2(20)
ADDRESS REF OF ADDRESSTYPE
SQL>
SQL> INSERT INTO client VALUES ('Jones',null);
1 row created.
SQL>
SQL>
SQL> SELECT *
2 FROM client;
NAME ADDRESS
-------------------- --------------------------------------------------
Jones
SQL>
SQL>
SQL> UPDATE client SET address =
2 (SELECT REF(aa)
3 FROM address_table aa
4 WHERE aa.city LIKE 'Mob%')
5 WHERE name = 'Jones'
6
SQL> select * from client;
NAME ADDRESS
-------------------- --------------------------------------------------
Jones
SQL>
SQL> drop table address_table;
Table dropped.
SQL> drop table client;
Table dropped.
SQL> drop type addresstype;
Type dropped.
SQL>
SQL>