如何删除oracle数据库中所有表里的数据?
如何删除oracle数据库中所有表里的数据?
表的数量较多。一个一个删除是不现实的。
问题点数:100、回复次数:6Top
1 楼SwordGrass(剑状叶草)回复于 2005-08-23 18:20:33 得分 0
没有人知道吗?Top
2 楼njhart2003()回复于 2005-08-23 18:34:01 得分 60
编一个过程,试试:
SQL> create or replace procedure truncate_all_table
2 as
3 l_str varchar2(1000);
4 begin
5 for x in (select tname from tab where tabtype='TABLE') loop
6 l_str:='truncate table '||x.tname;
7 execute immediate l_str;
8 end loop;
9 end;
10 /
过程已创建。
execute truncate_all_table;
Top
3 楼wyx097()回复于 2005-08-23 19:01:42 得分 34
spool c:\aa.txt
set pagesize 1000
select 'truncate table '||tname||';' from tab where tabtype = 'TABLE';
spool off
@c:\aa.txt
Top
4 楼fanyu_yu(fanyu)回复于 2005-08-23 22:21:02 得分 2
可以把用户给删除了就可以了,要不就像上面的那样写个脚本Top
5 楼csu_zhsh(周胜)回复于 2005-08-23 22:36:27 得分 2
可以在程序中把用户表搜索出来,然后drop吗?表信息里有这一项的,可以用来判断到底是用户表还是系统表的。Top
6 楼bobfang(匆匆过客)回复于 2005-08-24 09:59:59 得分 2
用truncate的前提是表没有被其他表的外键约束引用。如果存在,必须先将从表的外键约束禁止掉再truncate主表。Top




