删除表空间时遇到了ORA-02429错误:
SQL> drop tablespace TEST including contents and datafiles; drop tablespace TEST including contents and datafiles * 第 1 行出现错误: ORA-00604: 递归 SQL 级别 1 出现错误 ORA-02429: 无法删除用于强制唯一/主键的索引 |
检查TEST表空间的索引,发现是normal类型的,并不是唯一索引。
SQL> SELECT I.INDEX_NAME, I.INDEX_TYPE, I.TABLESPACE_NAME, I.TABLE_OWNER 2 FROM USER_INDEXES I 3 WHERE I.TABLESPACE_NAME = 'TEST';
INDEX_NAME INDEX_TYPE TABLESPACE_NAME TABLE_OWNER -------------- ----------- ------------------ -------------- IDX_TEST2_ID NORMAL TEST SCOTT |
检查IDX_TEST2_ID是不是主键索引
SQL> SELECT C.CONSTRAINT_NAME, C.CONSTRAINT_TYPE, C.TABLE_NAME, C.INDEX_NAME 2 FROM USER_CONSTRAINTS C where index_name=’ IDX_TEST2_ID’;
CONSTRAINT_NAME CONSTRAINT_TYPE TABLE_NAME INDEX_NAME ----------------------------- ----------------------- ------------------- --------------- PK_TEST2_ID P TEST2 IDX_TEST2_ID |
删除主健PK_TEST2_ID后,表空间TEST可以被删除
SQL> alter table TEST2 drop constraint PK_TEST2_ID cascade; 表已更改。
SQL> drop tablespace TEST including contents and datafiles; 表空间已删除。 |