通过drop命令删除表空间时若提示:
ORA-14404: partitioned table contains partitions in a different tablespace
此时只需找出存在于多个表空间的表,然后删除该表即可。假设我这里的表空间是temp_tablespace,先执行以下命令:
select x.table_name, x.partition_name, x.tablespace_name, y.tablespace_name
from dba_tab_partitions x, dba_tab_partitions y
where x.tablespace_name = 'temp_tablespace' AND y.tablespace_name <> 'temp_tablespace'
AND x.table_name = y.table_name;
结果会显示所有的跨越不同表空间的表来,假设其中表名为temp_table,这时可执行以下命令删除表:
drop table temp_table;
但执行结果有可能会提示
ORA-00942: table or view does not exist
这时可以根据表名查找出该表的owner
select table_name, owner, tablespace_Name from Dba_Tables where Table_Name = 'temp_table';
假设owner为temp_owner,这时只需执行带有owner的表名即可。
drop table temp_owner.temp_table;