
首先,需要知道临时表都叫什么名字或者有什么特征,比如都是以temp开头的表是临时表。
可用如下语句:
select 'TRUNCATE TABLE '||TABLE_NAME||';' from tabs where table_name like 'TEMP%';此时,结果中会生成一组语句,复制粘贴。如图:
将复制出来的语句,全选,并执行,即可。
还不如以system账户登录,然后把该用户删了:drop user user1 cascade;
如果还需要该账户,再重新建一个:create user user1 identified by xxxxx;
1 打开sqlplus,并用相应的用户连接。
2 把pagesize设大点,如set pagesize 20000
3 用spool把相应的结果导到文件时,如
SQL> spool /home/oracle/constraintsql
SQL> SELECT 'ALTER TABLE ' || table_name || ' disable CONSTRAINT ' || constraint_name || ';' FROM user_constraints where CONSTRAINT_TYPE = 'R';
SQL> spool off
4 已经生成了包含相应语句的脚本,不过脚本文件里的最前和最后面有多余的语句,用文本编辑器打开,并删除没用的语句即可!
你需要创建这些删除语句,通过oracle的数据字典找到该用户下的所有表、视图等对象,拼接成语句。如下
select 'drop table ' || table_name ||';'||chr(13)||chr(10) from user_tables; --delete tables
select 'drop view ' || view_name||';'||chr(13)||chr(10) from user_views; --delete views
select 'drop sequence ' || sequence_name||';'||chr(13)||chr(10) from user_sequences;--delete seqs
select 'drop function ' || object_name||';'||chr(13)||chr(10) from user_objects where object_type='FUNCTION';--delete functions
select 'drop procedure ' || object_name||';'||chr(13)||chr(10) from user_objects where object_type='PROCEDURE';--DELETE PROCEDURE
select 'drop package ' || object_name||';'||chr(13)||chr(10) from user_objects where object_type='PACKAGE';--delete pags
以上就是关于如何清空oracle数据库中所有的临时表全部的内容,包括:如何清空oracle数据库中所有的临时表、oracle数据库如何清除一个用户下的所有表、如何删除Oracle数据库中的某一用户名下全部的表等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)