ORA-02303無法使用型別或表的相關性來刪除或取代一個型別

lhrbest發表於2018-04-10
ORA-02303無法使用型別或表的相關性來刪除或取代一個型別


錯誤描述:
ORA-02303:無法使用型別或表的相關性來刪除或取代一個型別。

錯誤SQL:
CREATE OR REPLACE TYPE xxx  AS OBJECT (
xxx
xxx
xxx
);

原因分析:
該type被別的物件引用所以無法刪除。
select * from dba_dependences 檢視發現該type確實有被引用。
有其他的type引用到該type。導致無法更新該type

解決方法:
可以使用CREATE OR REPLACE type FORCE 命令來建立。

注意:
在11gR2中,對於引用該type型別的物件是表,則Force命令也無是無效的
只有當引用該type的物件也是type時,force命令是可以的。



本地實驗:

1. 先建立一個type test:
SQL> CREATE OR REPLACE TYPE scott.test  ASOBJECT (
     CONFERTYPE VARCHAR2(1),
     BROKERCODE VARCHAR2(12)); 
    /

Type created.

2. 再建立一個引用該type的type test1:
SQL> CREATE OR REPLACE TYPE scott.test1 is table ofscott.test;
  2  /

Type created.

3. 嘗試不用force方法修改type test:
SQL> CREATE OR REPLACE TYPE scott.test  ASOBJECT (
     CONFERTYPE VARCHAR2(1),
     BROKERCODE VARCHAR2(12),
      newvarchar2(1)); 
     /  
CREATE OR REPLACE TYPE scott.test  AS OBJECT(
*
ERROR at line 1:
ORA-02303: cannot drop or replace a type with type or tabledependents

果然報了ORA-02303的錯。

4. 然後嘗試用force方法進行修改type test:
SQL> CREATE OR REPLACE TYPE scott.test FORCE AS OBJECT(
     CONFERTYPE VARCHAR2(1),
     BROKERCODE VARCHAR2(12),
      newvarchar2(1)); 
     /  

Type created.

修改成功。

5. 建立一張引用該type的表 test2:
SQL> create table scott.test2 of scott.test;

Table created.

6. 嘗試修改該type:
SQL> CREATE OR REPLACE TYPE scott.test  ASOBJECT (
     CONFERTYPE VARCHAR2(1),
     BROKERCODE VARCHAR2(12),
      oldvarchar2(1)); 
    / 
CREATE OR REPLACE TYPE scott.test  AS OBJECT(
*
ERROR at line 1:
ORA-02303: cannot drop or replace a type with type or tabledependents

報了ORA-02303的錯。

7. 使用Force方法修改type:

SQL>  CREATE OR REPLACE TYPE scott.testforce AS OBJECT (
     CONFERTYPE VARCHAR2(1),
     BROKERCODE VARCHAR2(12),
      oldvarchar2(1)); 
     /  
 CREATE OR REPLACE TYPE scott.test force ASOBJECT (
*
ERROR at line 1:
ORA-22866: cannot replace a type with table dependents

果然不行,報了ORA-22866,對於有table引用的type使用force方法也無法修改或刪除。





About Me

.............................................................................................................................................

● 本文作者:小麥苗,部分內容整理自網路,若有侵權請聯絡小麥苗刪除

● 本文在itpub(http://blog.itpub.net/26736162/abstract/1/)、部落格園(http://www.cnblogs.com/lhrbest)和個人微信公眾號(xiaomaimiaolhr)上有同步更新

● 本文itpub地址:http://blog.itpub.net/26736162/abstract/1/

● 本文部落格園地址:http://www.cnblogs.com/lhrbest

● 本文pdf版、個人簡介及小麥苗雲盤地址:http://blog.itpub.net/26736162/viewspace-1624453/

● 資料庫筆試面試題庫及解答:http://blog.itpub.net/26736162/viewspace-2134706/

● DBA寶典今日頭條號地址:

.............................................................................................................................................

● QQ群號:230161599(滿)、618766405

● 微信群:可加我微信,我拉大家進群,非誠勿擾

● 聯絡我請加QQ好友646634621,註明新增緣由

● 於 2018-04-01 06:00 ~ 2018-04-31 24:00 在魔都完成

● 最新修改時間:2018-04-01 06:00 ~ 2018-04-31 24:00

● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解

● 版權所有,歡迎分享本文,轉載請保留出處

.............................................................................................................................................

小麥苗的微店

小麥苗出版的資料庫類叢書http://blog.itpub.net/26736162/viewspace-2142121/

小麥苗OCP、OCM、高可用網路班http://blog.itpub.net/26736162/viewspace-2148098/

.............................................................................................................................................

使用微信客戶端掃描下面的二維碼來關注小麥苗的微信公眾號(xiaomaimiaolhr)及QQ群(DBA寶典),學習最實用的資料庫技術。

小麥苗的微信公眾號小麥苗的DBA寶典QQ群2《DBA筆試面寶典》讀者群小麥苗的微店

   小麥苗的微信公眾號      小麥苗的DBA寶典QQ群2     《DBA筆試面試寶典》讀者群       小麥苗的微店

.............................................................................................................................................

ORA-02303無法使用型別或表的相關性來刪除或取代一個型別
DBA筆試面試講解群
《DBA寶典》讀者群 歡迎與我聯絡



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2152780/,如需轉載,請註明出處,否則將追究法律責任。

相關文章