ORA-02303: 无法使用类型或表的相关性来删除或取代一个类型

来源:互联网 发布:入侵网络摄像头 编辑:程序博客网 时间:2024/04/28 14:11

问题描述:

         在日常开发中,我们会创建Type和对应的TAB供其他数据库对象使用,如果对象引用了该Type,则对其修改(CREATE OR REPLACE TYPE)时会出现如下错误,ORA-02303: 无法使用类型或表的相关性来删除或取代一个类型 。


举例:

SQL> CREATE OR REPLACE TYPE typ_payment_order_result AS OBJECT  2  (  3    id                  NUMBER,  4    id_outgoing_payment VARCHAR2(30),  5    id_credit           NUMBER,  6    contract_no         VARCHAR2(20),  7    good_category       VARCHAR2(100)  8  )  9  ; 10  /CREATE OR REPLACE TYPE typ_payment_order_result AS OBJECT(  id                  NUMBER,  id_outgoing_payment VARCHAR2(30),  id_credit           NUMBER,  contract_no         VARCHAR2(20),  good_category       VARCHAR2(100));ORA-02303: 无法使用类型或表的相关性来删除或取代一个类型


因为该Type有其他对象引用,故对其进行修改时会出上面的错误,查看其依赖关系,可看到如下的依赖:

SQL> SELECT t.name,  2         t.type,  3         t.referenced_name,  4         t.referenced_type  5    FROM all_dependencies t  6   WHERE t.referenced_name = 'TYP_PAYMENT_ORDER_RESULT';NAME                           TYPE               REFERENCED_NAME                                                  REFERENCED_TYPE------------------------------ ------------------ ---------------------------------------------------------------- ------------------TAB__PAYMENT_ORDER_RESULT      TYPE               TYP_PAYMENT_ORDER_RESULT                                         TYPETAB_PAYMENT_ORDER_RESULT       TYPE               TYP_PAYMENT_ORDER_RESULT                                         TYPEPKG_INSTAN_PAYMENT             PACKAGE            TYP_PAYMENT_ORDER_RESULT                                         TYPEPKG_INSTAN_PAYMENT             PACKAGE BODY       TYP_PAYMENT_ORDER_RESULT                                         TYPESQL>

解决办法:

      使用Force选项解决。

SQL> CREATE OR REPLACE TYPE typ_payment_order_result FORCE AS OBJECT  2  (  3    id                  NUMBER,  4    id_outgoing_payment VARCHAR2(30),  5    id_credit           NUMBER,  6    contract_no         VARCHAR2(20),  7    good_category       VARCHAR2(100)  8  )  9  ; 10  /Type createdSQL> 



0 0
原创粉丝点击