<!-- 1. 删除前的准备工作: -->
<!-- (1) 连接数据源,导出备份数据 -->
exp tianzhi_smart/tianzhi_smart@1localhost:1521/orcl file='E:\tianzhi_smart.dmp';
<!--(2)登录即将被删除的用户,查看当前连接用户缺省表空间:-->
SQL>select username,default_tablespace from user_users;
<!-- 2. 删除工作: -->
<!-- 以sysdba管理员登录,删除数据库(用户) -->
sqlplus /nolog
conn /as sysdba;
<!-- 并没有删除对应的表空间 -->
drop user tianzhi_smart cascade;
<!-- 3. 创建用户: -->
<!-- 创建用户,并指定表空间,还是原来的表空间,前面已经查询到 -->
create user tianzhi_smart identified by tianzhi_smart default tablespace casic_smart quota 500m on users;
<!-- 授予权限 -->
grant all privileges to tianzhi_smart;
<!-- 4.导入数据 -->
imp tianzhi_smart/tianzhi_smart@localhost:1521/orcl file='C:\tianzhi_smart.dmp' full=y;
说明:
在硬盘盘符下看到的文件是数据库存放数据的数据文件,执行完drop user xxx cascade;后,会把用户及用户所属的表删除掉,但表空间还是存在的,只是里面的数据已被删除掉了。
最后说一点,删除了用户和数据后是不会自动释放表空间的,表空间容量是建立数据库的时候初始化的,比方说XXX tablespace 容量为1G,你删除数据是不影响这个容量的,它在硬盘上仍然占用1G空间。
文字来源于CSDN论坛技术回答:http://bbs.csdn.net/topics/370131138