//创建临时表空间
create temporary tablespace zfmi_temp
tempfile 'd:oracleoradatazfmizfmi_temp.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local;
//tempfile参数必须有
//创建数据表空间
create tablespace zfmi
logging
datafile 'd:oracleoradatazfmizfmi.dbf'
size 100m
autoextend on
next 32m maxsize 2048m
extent management local;
//datafile参数必须有
//删除用户以及用户所有的对象
drop user zfmi cascade;
//cascade参数是级联删除该用户所有对象,经常遇到如用户有对象而未加此参数则用户删不了的问题,所以习惯性的加此参数
//删除表空间
前提:删除表空间之前要确认该表空间没有被其他用户使用之后再做删除
drop tablespace zfmi including contents and datafiles cascade onstraints;
//including contents 删除表空间中的内容,如果删除表空间之前表空间中有内容,而未加此参数,表空间删不掉,所以习惯性的加此参数
//including datafiles 删除表空间中的数据文件
//cascade constraints 同时删除tablespace中表的外键参照
如果删除表空间之前删除了表空间文件,解决办法:
如果在清除表空间之前,先删除了表空间对应的数据文件,会造成数据库无法正常启动和关闭。
可使用如下方法恢复(此方法已经在oracle9i中验证通过):
下面的过程中,filename是已经被删除的数据文件,如果有多个,则需要多次执行;tablespace_name是相应的表空间的名称。
$ sqlplus /nolog
sql> conn / as sysdba;
如果数据库已经启动,则需要先执行下面这行:
sql> shutdown abort
sql> startup mount
sql> alter database datafile 'filename' offline drop;
sql> alter database open;
sql> drop tablespace tablespace_name including contents;
//创建用户并指定表空间
create user zfmi identified by zfmi
default tablespace zfmi temporary tablespace zfmi_temp;
//identified by 参数必须有
//授予message用户dba角色的所有权限
grant dba to zfmi;
//给用户授予权限
更多信息请查看IT技术专栏