如何删除Oracle数据库中的某一用户名下全部的表

来源:互联网 发布:污直播软件 编辑:程序博客网 时间:2024/06/05 00:31

由于工作需要,要将数据库中的某一用户名下的所有表删除,而公司所使用的是SqlDeveloper客户端而非PL/SQL客户端,故而需要使用SQL语句进行删除。

分为如下步骤:
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';

4.检索表,确认全部删除完成

// TO-DO Java代码实现对Oracle数据库的表全删,通过properties获取数据库连接参数。

0 0
原创粉丝点击