title: CREATE OR REPLACE TYPE with Type and Table Dependencies
body: <p>Before submitting this question I've checked the Oracle docs about this subject:
  <a href="http://docs.oracle.com/cd/E11882_01/appdev.112/e11822/adobjmng.htm#CHDBAEHJ" rel="nofollow">Using CREATE OR REPLACE TYPE with Type and Table Dependencies</a></p>
  
  <p>but still don't get my error solved.</p>
  
  <p>I've created some object types:</p>
  
  <pre><code>CREATE OR REPLACE TYPE SchoolMember AS OBJECT (
      ...
  ) NOT FINAL;
  /
  
  CREATE OR REPLACE TYPE Teacher UNDER SchoolMember (
     ...
  );
  /
  
  CREATE OR REPLACE TYPE Curse AS OBJECT (
     ...
     refTeacher REF Teacher,
     ...
  );
  /
  </code></pre>
  
  <p>Let's say I want to modify the Teacher object type adding a constructor:</p>
  
  <pre><code>CREATE OR REPLACE TYPE Teacher UNDER SchoolMember (
     ...
     CONSTRUCTOR FUNCTION Teacher(...) RETURN SELF AS RESULT
  );
  /
  
  CREATE OR REPLACE TYPE BODY Teacher AS
  ...
  END;
  /
  </code></pre>
  
  <p>I get the  <strong>ORA-02303: cannot drop or replace a type with type or table dependents</strong> because the Teacher type is used in the Curse object type itself.</p>
  
  <p>Where should I place the FORCE option when modifiying an inherited object type (Teacher in this case)?
  I've tried several ways, but none of them working: </p>
  
  <pre><code>CREATE OR REPLACE TYPE Teacher FORCE UNDER SchoolMember
  </code></pre>
  
  <p>or</p>
  
  <pre><code>CREATE OR REPLACE TYPE Teacher UNDER SchoolMember FORCE
  </code></pre>
  
  <p>But the ORA-02303 error is still there    </p>