oracle 11g 清空数据库指定用户下表内的数据

只清空数据,并不删除表。还有,清空数据的时候不会影响到我的表结构和约束之类的,而且一次性要清空多个用户!

清空数据分三种。

1、用truncate语句删除(直接清空表内数据,并释放空间)。

语法:

truncate table è¡¨å;

2、用drop语句删除(不仅清空表内数据,并且删除表结构)。

语法:

drop table è¡¨å;

3、用delete语句删除(可直接删除表内数据,也可以按条件删除表内数据,但执行后不释放空间,如果数据量大,执行较慢)。

语法:

delete from è¡¨å;--删除表内所有数据
delete from è¡¨å where æ¡ä»¶;--按条件删除表内数据
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-23
用这个生成语法:
select 'truncate table '||tname||';' from tab where tabtype = 'TABLE';

然后执行一下;

追问

我用的是system登陆的,但是想一次性把其他制定用户的表查出来,该加什么条件?

追答where里一定要多加条件,否则把系统表里的数据删除了,就麻烦了。

select 'TRUNCATE TABLE '|| OWNER ||'.'||TABLE_NAME || ';'  from dba_all_tables
WHERE OWNER IN (XXXX)


我还是建议不要怎么做,风险太高。

本回答被提问者采纳