oracle删除schema下所有对象,清空Schema中所有对象的步骤
先转一段:
如果想要快速的删除一个Schema下的所有数据库对象,您会使用什么样的手段来完成呢?
如果您是DBA,可能更倾向于先删除用户然后再重新创建用户。
优点:删除的彻底,不留任何痕迹(这是DBA伟大和危险的真实体现)。
缺点:要求的操作权限比较高,往往需要DBA亲力亲为;有一定误操作的风险;不便于书写到自动化脚本中,因为在当前用户有session连接的情况下是无法实现用户删除的。
如果您是一名开发人员,并且是位“工具达人”,可能会倾向于使用开发工具(如Toad、PL/SQL Developer等)点选的方式完成清理工作。
优点:要求权限不高,如果工具功能掌握熟练可以较快的完成删除任务。
缺点:无法实现自动化和批量操作的目的,人工成本太高,效率极低;存在工具软件异常假死的现象,不推荐使用。
这里按DBA,并且被要求不能删除用户的情况下,步骤如下:
---- Check out the DB object types in this schema as sysdba
SQL> select owner,object_type,count(1) from dba_objects where owner like 'VERTEX%' group by owner,object_type order by 1,2;
OWNER OBJECT_TYPE COUNT(1)
------------------------------ ------------------- ----------
VERTEX_SALES INDEX 535
VERTEX_SALES SEQUENCE 12
VERTEX_SALES TABLE 326
VERTEX_SALES TRIGGER 12
VERTEX_SALES VIEW 7
因为这里INDEX和TRIGGER都是在TABLE上的,所以只需drop掉 TABLE/VIEW/SEQUENCE即可。
---- generate SQL scripts running SELECT DROP clause below on SQLPLUS.
SQL> select 'drop table '||owner||'.'||table_name||' cascade constraints;' from dba_tables where wner='VERTEX_SALES';
SQL> select 'drop sequence '||sequence_owner||'.'||sequence_name||';'||chr(13)||chr(10) from all_sequences where sequence_owner='VERTEX_SALES';
SQL> select 'drop view '||owner||'.'||view_name||' cascade constraints;'||chr(13)||chr(10) from all_views where wner='VERTEX_SALES';
---- execute the SQL script genetated on the top one by one on SQLPLUS
SQL> @/tmp/salesdt.sql
SQL> @/tmp/salesds.sql
SQL> @/tmp/salesdv.sql
注意:执行之前需要对sql脚本修改加工,比如去掉标题和结果等,也可以在生成之前在sqlplus里set verify off pagesize 0 linesize 150 echo off feedback off head off timing off
然后再执行第一步检查是否全部清空
----- import the dmp file exported the source env.
/export/home/oracle > imp "'/ as sysdba'" file=vertex.dmp fromuser=VERTEX_SALES touser=VERTEX_SALES
注意:导入之前可能需要设置导入字符集和添加角色等,那就先create role 。。。
---- See if the import has been completed running the first SQL clause.
完整的SELECT DROP语句如下:
select 'drop table '||table_name||' cascade constraints;' from all_tables where wner='TEST';
select 'drop view ' || view_name||' cascade constraints;'||chr(13)||chr(10) from all_views where wner='TEST';
select 'drop index ' || index_name||' cascade constraints;'||chr(13)||chr(10) from all_indexes where wner='TEST';
select 'drop sequence ' || sequence_name||';'||chr(13)||chr(10) from all_sequences where sequence_owner='TEST';
select 'drop procedure ' || object_name||';'||chr(13)||chr(10) from all_objects where object_type='PROCEDURE' and wner='TEST';
select 'drop trigger ' || object_name||';'||chr(13)||chr(10) from all_objects where object_type='TRIGGER' and wner='TEST';
select 'drop package ' || object_name||';'||chr(13)||chr(10) from all_objects where object_type='PACKAGE' and wner='TEST';
---- The end.
oracle删除schema下所有对象,清空Schema中所有对象的步骤相关推荐
- Oracle删除用户下的sequence
--Oracle删除用户下的sequence declare owner_name varchar(20); cursor cur1 is select sequence_name from user ...
- 【C++】栈中实例化对象与堆中实例化对象
一. 实例化对象写法的区别 栈中实例化对象: 堆中实例化对象: 最大区别就在于,从栈中申请内存,在使用完后无需释放,但是从堆中申请内存,使用完以后必须释放! 注意:从堆中申请内存,是有可能失败的,所以 ...
- oracle删除用户下的所有表
删除表有2个办法 1,删除用户 这是最快的方法 2,生成删除语句 方法一 drop user xxx cascade; 方法二 你需要创建这些删除语句,通过oracle的数据字典找到该用户下的所有 ...
- 表的插入、更新、删除、合并操作_18_清空表中记录
清空表中记录 需求描述 需求:删除dept表里deptno为50的记录,但数据不可再恢复. 解决方法:这里通过TRUNCATE TABLE TableName方式来删除数据. 注: 数据库数据集SQL ...
- 对象删除某个属性_充分了解JavaScript中【对象】的概念(二)
点击上方「蓝字」关注我们 之前的文章: 充分了解JavaScript中[对象]的概念(一) 这篇文章我们继续来讲解JavaScript中[对象]的概念,因为这是一系列的文章,所以建议从第一篇文章开始看 ...
- java中session对象登录_JavaWeb中Session对象的学习笔记
一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务 ...
- java中对象类型转换_Java中的对象的类型转换介绍(附代码)
本篇文章给大家带来的内容是关于Java中的对象的类型转换介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 向上转型:子类对象转为父类,父类可以是接口.公式:Father ...
- php怎么创建对象数组对象数组对象,在PHP中把对象当数组使用
在PHP中把对象当数组使用 我们了解,JAVASCRIPT中,对象的属性.方法,是可以用数组的模式来访问的.但通常情况下是不可能的. 为什么要这么做?这是因为,通过这一方式,可以更加方便地操作对象,我 ...
- android对象申明,Kotlin中的对象表达式和对象声明的具体使用
Kotlin的对象表达式与Java中的匿名内部类的主要区别:匿名内部类只能指定一个父类型,但对象表达式可以指定0~N个肤类型. 一.对象表达式 对象表达式的语法格式如下: object [: 0~N个 ...
- jsp九大内置对象与servlet中java对象
jsp九大内置对象 request对象 : getParameter(String name)获取表单提交的数据 getParamegerNames() 获取客户端提交的所有参数名 getAttrib ...
最新文章
- android camera 降低帧率_Android性能问题分析之bugreport
- python input与返回值-python中使用input()函数获取用户输入值方式
- php9宫格抽奖程序_php抽奖算法(适用于九宫格、大转盘)
- 【AI-1000问】为什么LeNet5倒数第二个全连接层维度为84?
- ESX 4 无法启动vSphere Web Access
- mysql 数学函数
- Codeforces Round #307 (Div. 2) A. GukiZ and Contest 水题
- c语言中将整数转换成字符串_在C语言中将ASCII字符串(char [])转换为十六进制字符串(char [])...
- 提高数据库的查询速率及其sql语句的优化问题
- 人越是没钱,越要戒掉这4点毛病,否则穷苦一辈子!
- msf后渗透之获取登入password、远程控制、调用摄像头
- 计算机辅助翻译 教学大纲,《计算机辅助翻译》本科课程教学大纲翻译本科.doc...
- 如何解决sql server 存储过程在查询分析器快,但程序调用存储过程执行慢的问题?
- MATLAB将MP4转为GIF
- [漏洞分析] CVE-2021-3560 PolKit条件竞争本地提权分析
- 学生个人html静态网页制作 基于HTML+CSS+JavaScript+jquery仿苏宁易购官网商城模板
- FC-SAN存储技术
- 【总结】1334- JS中Object的keys是无序的吗
- 当MySQL想恋爱,java和navicate抢着做媒婆 ------ java连接MySQL数据库 navicat for MySQL 连接
- c语言用指针分离字符串数字与字符,c语言实验报告,指针的应用分别输出字符串中的数字和其他字符(共10篇).docx...
热门文章
- vb 字符串和数字相互转换函数
- 用C++完成三国杀(无GUI)
- 拓端tecdat|R语言中的马尔可夫区制转移(Markov regime switching)模型
- 【大数据部落】从网络图看数字媒体对传统媒体的影响
- 织梦支持php版本,DedeCMS不支持PHP5.3、5.4及以上版本后台500错误白屏的解决方法...
- Android开发教程1~3章笔记
- iview的select联动_render函数渲染的iview中的Select组件如何联动?
- lacp静态和动态区别_TTM、静态和动态市盈率的区别,三种市盈率看哪个?
- mysql ssl编译_MySQL8开启ssl加密
- make_classification参数