刪除表空間時,遇到了ORA-14404錯誤

記錄每一次錯誤發表於2019-06-20

刪除表空間時,遇到了ORA-14404錯誤。


錯誤資訊如下:

SQL> DROP TABLESPACE PART1 INCLUDING CONTENTS AND DATAFILES;

DROP TABLESPACE PART1 INCLUDING CONTENTS AND DATAFILES

ORA-14404: partitioned table contains partitions in a different tablespace


同樣檢視官方文件的說明:

Oracle Error: ORA-14404


Error Description:

Partitioned table contains partitions in a different tablespace


Error Cause:

An attempt was made to drop a tablespace which contains tables whose partitions are not completely contained in this tablespace.


Action:

Find tables with partitions which span the tablespace being dropped and some other tablespace(s). Drop these tables or move partitions to a different tablespace.


問題分析:

ORA-14404錯誤說明有某個表不僅僅只在當前表空間,在其他表空間也存有資料。解決方法,Oracle的建議也比較清晰,要麼刪除這個表,要麼把移動partitions到一個單獨的表空間中。對於我來說,我刪除此表即可。


首先需要找到到底是哪張表跨越了不同表空間:

SQL> SELECT x.table_name,x.partition_name,x.tablespace_name 表空間1, y.tablespace_name 表空間2

  2  FROM dba_tab_partitions x, dba_tab_partitions y

  3  WHERE x.tablespace_name ='PART1' AND y.tablespace_name <> 'PART1' AND x.table_name=y.table_name;

TABLE_NAME                     PARTITION_NAME                 表空間1                        表空間2

------------------------------ ------------------------------ ------------------------------ ------------------------------

RANGE_PART                     YR0                            PART1                          PART2

RANGE_PART                     YR0                            PART1                          PART3

RANGE_PART                     YR0                            PART1                          PART4


即找到名稱為RANGE_PART的分割槽表的資料在表空間PART1、PART2和PART3上,接下來刪除此表即可。

SQL> drop table RANGE_PART;

Table dropped



參考:

Oracle ORA-14404和ORA-14407錯誤的解決方法


原文:https://blog.csdn.net/pan_tian/article/details/46763125 



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

相關文章