SQL>
SQL> create type addressType as object
2 (Street VARCHAR2(50),
3 City VARCHAR2(25),
4 State CHAR(2),
5 Zip NUMBER);
6 /
SQL> create type personType as object
2 (Name VARCHAR2(25),
3 Address addressType);
4 /
SQL>
SQL> create table emp
2 (cid NUMBER primary key,
3 Name VARCHAR2(25),
4 Street VARCHAR2(50),
5 City VARCHAR2(25),
6 State CHAR(2),
7 Zip NUMBER);
SQL>
SQL> create or replace type empType as object
2 (cid NUMBER,
3 Name VARCHAR2(25),
4 Street VARCHAR2(50),
5 City VARCHAR2(25),
6 State CHAR(2),
7 Zip NUMBER);
8 /
SQL>
SQL> create view empView of empType
2 with object OID (cid) as
3 select cid, Name, Street, City, State, Zip
4 from emp;
SQL>
SQL> create table emp_CALL
2 (cid NUMBER,
3 Call_Number NUMBER,
4 Call_Date DATE,
5 constraint emp_CALL_PK primary key (cid, Call_Number),
6 constraint emp_CALL_FK foreign key (cid)references emp(cid));
SQL>
SQL> create view empCallView as
2 select MAKE_REF(empView, cid) cid,
3 Call_Number,
4 Call_Date
5 from emp_CALL;
SQL>
SQL> select DEREF(CCOV.cid)
2 from empCallView CCOV
3 where Call_Date = TRUNC(SysDate);
SQL>
SQL> drop view empCallView;
SQL> drop view empView;
SQL> drop table emp_CALL;
SQL> drop table emp;
SQL>
SQL> drop type personType;
SQL>
SQL> drop type addressType;
SQL>