文档章节

Oracle删除当前用户下的所有表、视图、序列、函数、存储过程、包

蒋鑫燚
 蒋鑫燚
发布于 2012/02/04 23:14
字数 586
阅读 4546
收藏 2
--以下方法1,3本人试过,在sqlplus下最好用的删除,还原方法是:
--把删除表,写成脚本:
--************************
--**方法1
--************************
--在终端依次输入以下命令
sqlplus
--输入需要删除的用户名
--输入密码
SET HEAD OFF 
SPOOL  /tmp/database/drop_tables.sql 

--chr(13) ASCII中=换行  chr(10) ASCII中=回车
--delete tables 
select 'drop table ' || table_name ||';'||chr(13)||chr(10) from user_tables;   
--delete views 
select 'drop view ' || view_name||';'||chr(13)||chr(10) from user_views;   


--delete seqs 
select 'drop sequence ' || sequence_name||';'||chr(13)||chr(10) from user_sequences;  


--delete functions 
select 'drop function ' || object_name||';'||chr(13)||chr(10) from user_objects where object_type='FUNCTION';   


--delete procedure 
select 'drop procedure ' || object_name||';'||chr(13)||chr(10) from user_objects where object_type='PROCEDURE';   


--delete package 
select 'drop package ' || object_name||';'||chr(13)||chr(10) from user_objects where object_type='PACKAGE';   

--delete trigger
SELECT 'drop TRIGGER "' ||SYS_CONTEXT('USERENV','CURRENT_USER')||'"."'|| TRIGGER_NAME ||'";' ||CHR(13) ||CHR(10)FROM USER_TRIGGERS


spool off; 
@/tmp/database/drop_tables.sql; 

purge recyclebin;	--清空Oracle的回收站

--例:(win下进行删除用户asus的所有表)
sqlplus
asus	--用户名
asus	--密码
SET HEAD OFF 
SPOOL  c:/drop_tables.sql --保存为sql语句

--chr(13) ASCII中=换行  chr(10) ASCII中=回车
--delete tables 
select 'drop table ' || table_name ||';'||chr(13)||chr(10) from user_tables;
--delete views 
select 'drop view ' || view_name||';'||chr(13)||chr(10) from user_views;   
--delete seqs 
select 'drop sequence ' || sequence_name||';'||chr(13)||chr(10) from user_sequences;  
--delete functions 
select 'drop function ' || object_name||';'||chr(13)||chr(10) from user_objects where object_type='FUNCTION';   
--delete procedure 
select 'drop procedure ' || object_name||';'||chr(13)||chr(10) from user_objects where object_type='PROCEDURE';   
--delete package 
select 'drop package ' || object_name||';'||chr(13)||chr(10) from user_objects where object_type='PACKAGE';   
--delete trigger
SELECT 'drop TRIGGER "' ||SYS_CONTEXT('USERENV','CURRENT_USER')||'"."'|| TRIGGER_NAME ||'";' ||CHR(13) ||CHR(10)FROM USER_TRIGGERS

spool off; 
@c:/drop_tables.sql; 
purge recyclebin;	--清空Oracle的回收站
quit	--退出sqlplus

--完成

--然后再还原数据。
--imp maximo/maximo@orcl fromuser=maximo touser=maximo file=21时14分34秒.dmp  tablespaces=tablespaces


--************************
--**方法2
--************************
1 select   Drop   table   ||table_name||;
  from   all_tables
  where   owner=要删除的用户名(注意要大写);
  2、
  删除所有表
  以用户test为例
  for example:
  declare
  cursor cur1 is select table_name from dba_tables where owner=TEST;
  begin
  for cur2 in cur1 loop
  execute immediate drop table test.||cur2.table_name;
  end loop;
  end;
  3、这个删除当前用户的所有对象(表、视图、触发器、存储过程、函数)
  DECLARE
  TYPE name_list IS TABLE OF VARCHAR2(40);
  TYPE type_list IS TABLE OF VARCHAR2(20);
  Tab_name name_list:=name_list();
  Tab_type type_list:=type_list();
  sql_str VARCHAR2(500);
  BEGIN
  sql_str := select uo.object_name,uo.object_type from user_objects uo where uo.object_type not in(INDEX,LOB) order by uo.object_type desc;
  EXECUTE IMMEDIATE sql_str BULK COLLECT INTO tab_name,tab_type;
  FOR i IN Tab_name.FIRST.. Tab_name.LAST LOOP
  sql_str := DROP || Tab_type(i) || || Tab_name(i);
  EXECUTE IMMEDIATE sql_str;
  END LOOP;
  END;



--************************
--**方法3
--**使用Oracle SQL Developer
--************************
--用需要删除的用户登入
--在工作表中输入以下内容


© 著作权归作者所有

蒋鑫燚
粉丝 3
博文 12
码字总数 36021
作品 0
台州
私信 提问
ORACLE授权用户查询另一个用户下的表与视图

实际应用中,会遇到在某个用户下需要查询另一个用户下的表数据或视图的情况,然而在没有授权时,会提示无权限操作的错误。那就需要通过授权处理后,再能进行查询操作,下面我们来看看是怎么处...

ling118
2018/01/18
0
0
Num58 Oracle总结

表空间: 安装一个oracle,只有一个数据库。 ORACLE数据库的逻辑单元。 数据库---表空间 一个表空间可以与多个数据文件(物理结构)关联 一个数据库下可以建立多个表空间,一个表空间可以建立...

萧小蚁
2016/06/24
48
0
Oracle数据库对象简介

Oracle数据库数据对象中最基本的是表和视图,其他还有约束、序列、函数、存储过程、包、触发器等。对数据库的操作可以基本归结为对数据对象的操作,理解和掌握Oracle数据库对象是学习Oracle的...

有些服务器
2015/12/12
54
0
oracle的基础知识

oracle数据库的结构: 一个数据库下面可以创建多个用户,不同的用户对应不同的数据库文件【数据库文件就是 xx.dmp】。在实际的开发中都是这样利用数据库的。【实际生产环境中,为了减少成本和...

哎那个新来的
2016/11/22
24
0
查看Oracle当前用户下的信息(用户,表视图,索引,表空间,同义词等)

1、用户   查看当前用户的缺省表空间 SQL>select username,defaulttablespace from userusers;   查看当前用户的角色 SQL>select * from user_role_privs;   查看当前用户的系统权限和...

lq2011
2017/12/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

作为一个(IT)程序员!聊天没有话题?试试这十二种技巧

首先呢?我是一名程序员,经常性和同事没话题。 因为每天都会有自己的任务要做,程序员对于其他行业来说;是相对来说比较忙的。你会经常看到程序员在发呆、调试密密麻麻代码、红色报错发呆;...

小英子wep
59分钟前
12
0
【SpringBoot】产生背景及简介

一、SpringBoot介绍 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程,该框架使用了特定的方式来进行配置,从而使开发人员不再需要...

zw965
今天
4
0
简述并发编程分为三个核心问题:分工、同步、互斥。

总的来说,并发编程可以总结为三个核心问题:分工、同步、互斥。 所谓分工指的是如何高效地拆解任务并分配给线程,而同步指的是线程之间如何协作,互斥则是保证同一时刻只允许一个线程访问共...

dust8080
今天
6
0
OSChina 周四乱弹 —— 当你简历注水但还是找到了工作

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌 :#今日歌曲推荐# 分享成龙的单曲《男儿当自强》。 《男儿当自强》- 成龙 手机党少年们想听歌,请使劲儿戳(这里) @hxg2016 :刚在...

小小编辑
今天
3.2K
22
靠写代码赚钱的一些门路

作者 @mezod 译者 @josephchang10 如今,通过自己的代码去赚钱变得越来越简单,不过对很多人来说依然还是很难,因为他们不知道有哪些门路。 今天给大家分享一个精彩的 GitHub 库,这个库整理...

高级农民工
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部