oracle 删除所有表和序列

在linux安装的oracle,我要把以前的建的库下的所有表和序列都删除,该怎么操作。还有是在pl/sql登录oracle还有要到linux下登录,还是有其他的方式;怎么去导入导出dmp文件,谢谢!

不管是主机上还是客户端上,使用具备dba角色的用户登录到数据库的sqlplus环境,直接删除用户,就可以把该用户下的而所有对象都删除,包括表、序列。或者使用该用户登录到sqlplus,从user_tables和user_sequences视图中选出所有的表和序列,然后执行drop table ...和drop sequence ...来批量删除所有的表和序列。使用exp和imp工具导出、导入dmp文件。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-31
如果你是用的一个特殊用户来建的表和序列,那么可以直接删除用户来达到目的。
或者你可以写个存储过程来做,通过select * from user_objects里来找出表和序列,然后循环删除。
第2个回答  2011-05-25
要是删除一个实例下所有内容的话可以使用:
drop user ####(你要删除的表所在的用户) cascade;
如果需要保留个别东西的话那就得写脚本一个一个删了。
导出:
exp userid=user/password@实例名 file='c:\backup.dmp' tables=(a, b, c)
导入:
imp userid=user/password@实例名 file='file='c:\backup.dmp'
如果是导入用户与导出导出用户不同,需要加fromuser=#### touser=####
导出大文件时可以加上commit=y buffer=10000000
具体参数可以在cmd下使用 exp -help 与 imp -help 命令查看
第3个回答  2011-05-25

如果你把他们建在了一个模式下,或者能确定什么时间以后创建的对象都不要了,那么就可以写一个脚本一口气全删除了
否则就很难了,不如重装一下
相似回答