如何删除ORACLE数据库中所有的表

 

分为如下步骤: 
1.获取表名,并生成Drop语句 
2.执行Drop语句,递归1,2步骤直至全部表清空或只余下无法删除的表 
3.对于无法删除的表,需要通过alter修改其参数,再执行删除语句 
4.确认所有的表都已经被删除

1.获取全部的表名:USERNAME参数为用户名,部分数据库不需要以用 户名.表名的形式删除,则可省略第一个USERNAME参数//建议最好加上,防止误删其他用户下的表

        SELECT 'DROP table USERNAME.'||table_name||';'  FROM all_tables WHERE owner='USERNAME';


2.第一个SQL语句批量查询了数据库中的所有表,并生成了Drop语句.批量执行该DROP语句,即可对数据库中的表进行删除。但有部分表存在无法删除的情况,需要对1,2两步递归执行,直至全部删除或只余下部分不可删除的部分。

 

 

********************还未尝试下列操作*****************************

3.通过alter语句修改表的结构与状态,删除无法通过常规方式删除的表

alter session set events'10851 trace name context forever,level 1';

你可能感兴趣的:(Oracle)