Oracle 如何删除掉一个用户下的所有对象
create or replace procedure drop_all as
cursor cur_obj is
select uo.OBJECT_NAME, uo.OBJECT_TYPE
from user_objects uo
where uo.OBJECT_NAME not in ('DROP_ALL')
and uo.OBJECT_TYPE not in ('LOB');
/* cursor cur_tablespace is
select ut.TABLESPACE_NAME
from user_tablespaces ut
where ut.TABLESPACE_NAME not in
('SYSTEM', 'SYSAUX', 'UNDOTBS1', 'TEMP', 'USERS');*/
v_obj_name user_objects.OBJECT_NAME%type;
v_obj_type user_objects.OBJECT_TYPE%type;
/* v_tablespaces_name user_tablespaces.TABLESPACE_NAME%type;*/
sql_str1 varchar2();
/* sql_str2 varchar2(2000);*/
begin
open cur_obj;
loop
fetch cur_obj
into v_obj_name, v_obj_type;
exit when cur_obj%notfound;
sql_str1 := 'drop ' || v_obj_type || ' ' || v_obj_name;
execute immediate sql_str1;
end loop;
close cur_obj;
/* open cur_tablespace;
loop
fetch cur_tablespace
into v_tablespaces_name;
exit when cur_tablespace%notfound;
sql_str2 := 'drop tablespace ' || v_tablespaces_name ||
' including contents';
execute immediate sql_str2;
end loop;
close cur_tablespace;*/
end drop_all;
这个存储过程可以一把删掉用户下几乎所有的对象。注释里的东西释放出来就能删除表空间了。这个过程不能回滚,绝对不要在生产环境或者有用的环境上使用。我不对这个过程执行的结果负任何责任。
这个脚本适合在那种删除用户不是很方便的时候使用。
更简单的办法就是删掉用户再重建用户。
Oracle 如何删除掉一个用户下的所有对象的更多相关文章
- 如何杀掉一个用户下的所有进程并drop掉这个用户
如何杀掉一个用户下的所有进程并drop掉这个用户 Copy the sample code below into a file named kill_drop_user.sql.Open SQL*Pl ...
- ORACLE无法删除当前连接用户
今天在做Oracle数据库是遇到ORACLE无法删除当前连接用户 ,经查找可用如下方法解决 . 在Oracle中删除用户时提示:ORACLE无法删除当前连接用户 可以用以下语句 Sql代码 ...
- oracle impdp将导出用户的所有对象导入至另一个用户下,生成的触发器语句问题处理
问题产生的操作步骤及详细说明: 1)操作的数据库是oracle 11g,先通过命令将用户GAS_NEW的数据导出,命令语句如下: expdp GAS_NEW/GAS_NEW@ORCL schemas= ...
- oracle "记录被另一个用户锁定"
出现的原因是有人对某一条数据进行了修改,oracle会通过这个事务记住这条数据,若修改的人没有进行提交或进行回滚记录,oracle是不允许对这条数据在此进行修改的,在这种情况下你要进行修改数据,则会被 ...
- Oracle开发:创建一个用户并分配表空间和分配权限
-- 创建一个用户并分配表空间和分配权限 -- 以sysdba登录 oracle@sha-col-oracle-2:~> sqlplus / as sysdba SQL*Plus: Releas ...
- KingbaseES 如何把一个schema下的所有对象访问权限授权给其他用户
用户需求:新建一个用户 B,需要能够查询A用户的所有表,并且对以后新建的表也要有select权限. 问题分析:对于现有的表可以通过动态sql批量进行授权,但是未来新建的表要如何进行授权呢? 查询了帮助 ...
- 转 Oracle 12C 之 CDB/PDB用户的创建与对象管理
在Oracle 12C中,账号分为两种,一种是公用账号,一种是本地账号(亦可理解为私有账号).共有账号是指在CDB下创建,并在全部PDB中生效的账号,另一种是在PDB中创建的账号. 针对这两种账号的测 ...
- 【Oracle】如何让一个用户能够访问另外一个用户下所有的表
根据需求的不同,也分为好几种方法,且看下文. 先构造基本的环境:创建两个用户AA,BB,基本需求为用户AA能够访问用户BB下所有的表,即用户AA有对BB下所有的表有"select on&qu ...
- oracle 删除某个用户下的所有对象
先存放好dropobj.sql 文件 然后登录需要删除的用户 删除前最好备份一下:(备份是在cmd中进行的) C:\Users\panfu>exp file=d:\expall.dmp log= ...
随机推荐
- 基于PHP实现一个简单的在线聊天功能(轮询ajax )
基于PHP实现一个简单的在线聊天功能(轮询ajax ) 一.总结 1.用的轮询ajax 二.基于PHP实现一个简单的在线聊天功能 一直很想试着做一做这个有意思的功能,感觉复杂的不是数据交互和表结构,麻 ...
- VC6.0 MFC中WebBrowser控件禁止新窗口弹出的解决办法
http://blog.csdn.net/gnorth/article/details/7258293 分类: WebBrowser MFC 禁止新窗口2012-02-14 15:25 1787人阅读 ...
- matlab 程序发布
将matlab程序发布为可执行程序包 说明,这种可执行程序包可以在没有安装matlab的计算机上运行. 1. 打开Applicaiton Compler 如果下拉列表中没有这个APPLICATIOND ...
- [AngularJS Ng-redux] Integrate ngRedux
Up to this point, we have created an effective, yet rudimentary, implementation of Redux by manually ...
- Linux 下查看线程信息
1. 使用 pstree -p PID ps aux | grep firefox | grep -v grepcharles 26058 0.0 0.0 4908 1152 ? ...
- stm32的DMA传输一半中断
这里本想做一个录音程序 硬件很简单: MIC(麦克风)放大滤波电路---->stm32的ADC----->DMA通道----->一个数组缓存------->通过FATFS的 ...
- [JS Compose] 1. Refactor imperative code to a single composed expression using Box
After understanding how Box is, then we are going to see how to use Box to refacotr code, to un-nest ...
- Linux 常用性能工具
Linux 常用性能工具简介. 一.wget 文件下载 使用wget下载单个文件:wget URL 下载并以不同的文件名保存:wget -O wordpress.zip URL wget限速下载:wg ...
- jquery zoom jquery放大镜特效
这是一款非常不错的给图片添加放大镜效果,可以应用在诸如zen cart,magento电子商场之类的开源项目上.如果想看它的效果,你可以直接访问: http://www.mind-projects.i ...
- 如何编辑SDE数据库(转载)
转自原文 如何编辑SDE数据库(转载) 如何编辑SDE数据(转自ESRI中国社区) (2008-12-15 17:26:41) 很多刚入门的朋友对SDE数据并不太了解,接二连三的在社区里面发问,有时也 ...