删除表空间的时候,如果该表空间非空,则若使用drop tablesapce test1.的命令会报错“表空间非空,请使用including contents”.此时的用法为:
如果没有在删除表空间语句中加and datafiles,则数据文件并没有被自动删除,查看物理路径时依然存在,只是查看v$datafile的时候,系统会忽略它的存在。但是,若下次新建表空间的时候,不能够新建相同的数据文件,因为物理文件中存在。如:
为了解决这个问题,尝试过删除它,不过试过了很多方法都删除不了,因为控制文件中好像忽略了它的的信息。后来,反过来想了下,既然删除不了,不如重新使用它,因为毕竟物理文件是真实存在的。
drop tablecpace test1 including contents and datafiles;---同时删除表空间以及数据文件;
如果没有在删除表空间语句中加and datafiles,则数据文件并没有被自动删除,查看物理路径时依然存在,只是查看v$datafile的时候,系统会忽略它的存在。但是,若下次新建表空间的时候,不能够新建相同的数据文件,因为物理文件中存在。如:
SQL> create tablespace test1
2 logging
3 datafile 'D:\APP\ASUS\ORADATA\TEST\TEST01.DBF'
4 SIZE 30M
5 autoextend on
6 next 3m maxsize unlimited
7 extent management local;
create tablespace test1
*
第 1 行出现错误:
ORA-01119: 创建数据库文件 'D:\APP\ASUS\ORADATA\TEST\TEST01.DBF' 时出错
ORA-27038: 所创建的文件已存在
OSD-04010: 指定了 <create> 选项, 但文件已经存在
为了解决这个问题,尝试过删除它,不过试过了很多方法都删除不了,因为控制文件中好像忽略了它的的信息。后来,反过来想了下,既然删除不了,不如重新使用它,因为毕竟物理文件是真实存在的。
SQL> create tablespace test1
2 logging
3 datafile 'D:\APP\ASUS\ORADATA\TEST\TEST01.DBF' SIZE 10M REUSE;
表空间已创建。