SQL>
SQL> CREATE OR REPLACE TYPE Obj1 AS OBJECT (
2 f1 NUMBER,
3 f2 VARCHAR2(10),
4 f3 DATE
5 );
6 /
Type created.
SQL> show errors
No errors.
SQL>
SQL> CREATE OR REPLACE TYPE Obj2 AS OBJECT (
2 f1 DATE,
3 f2 CHAR(1)
4 );
5 /
Type created.
SQL> show errors
No errors.
SQL>
SQL> CREATE OR REPLACE TYPE Obj3 AS OBJECT (
2 a Obj1,
3 b Obj2
4 );
5 /
Type created.
SQL> show errors
No errors.
SQL>
This will fail, since Obj3 depends on Obj1 and Obj2
SQL> DROP TYPE Obj1;
DROP TYPE Obj1
*
ERROR at line 1:
ORA-02303: cannot drop or replace a type with type or table dependents
SQL>
But if we drop Obj3 first:
SQL> DROP TYPE Obj3;
Type dropped.
SQL>
Then it will succeed.
SQL> DROP TYPE Obj1;
Type dropped.
SQL>