删除用户建立的所有数据库表以及查询某个字段存在哪张表中

时间:2021-03-17 14:56:55

如何一次性删除用户建立的所有数据库表以及查询某个字段存在哪张表中

当我们对数据库进行数据导入的时候,难免会出现把表的数据导入到错误的用户下面,这时候如果单表一个一个的删除,麻烦先不说,有些表是关联的,我们是删不掉的,让我们很犯难,所以需要一次性删除所有表数据的操作。

select * from user_tables ; //查询用户表


select * from user_objects t where t.CREATED >trunc(sysdate,'mon') and t.OBJECT_TYPE='TABLE';


select * from user_tab_statistics tt where tt.TABLE_NAME in (
select t.OBJECT_NAME from user_objects t where t.CREATED >trunc(sysdate,'mon') and t.OBJECT_TYPE='TABLE') and tt.NUM_ROWS>0;


select 'delete '||tt.TABLE_NAME ||'  ; ' vsql, tt.* from user_tab_statistics tt where tt.TABLE_NAME in (
select t.OBJECT_NAME from user_objects t where t.CREATED >trunc(sysdate,'mon') and t.OBJECT_TYPE='TABLE') and tt.NUM_ROWS>0;


数据库执行上面的操作就可以轻松搞定删除问题了。记得一定要先查询数据表,确定是不是需要删除的表,避免出错。



查询某个字段存在哪张表中

当我们只知道某个字段的名字而却不知道存在哪张表中,我们可以通过以下代码知道存在该字段的数据表,记得字段是区分大小写的。

 select table_name from dba_tab_columns t where t.COLUMN_NAME='字段名'