先转一段:

如果想要快速的删除一个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中所有对象的步骤相关推荐

  1. Oracle删除用户下的sequence

    --Oracle删除用户下的sequence declare owner_name varchar(20); cursor cur1 is select sequence_name from user ...

  2. 【C++】栈中实例化对象与堆中实例化对象

    一. 实例化对象写法的区别 栈中实例化对象: 堆中实例化对象: 最大区别就在于,从栈中申请内存,在使用完后无需释放,但是从堆中申请内存,使用完以后必须释放! 注意:从堆中申请内存,是有可能失败的,所以 ...

  3. oracle删除用户下的所有表

    删除表有2个办法 1,删除用户 这是最快的方法 2,生成删除语句 方法一 drop user  xxx  cascade; 方法二 你需要创建这些删除语句,通过oracle的数据字典找到该用户下的所有 ...

  4. 表的插入、更新、删除、合并操作_18_清空表中记录

    清空表中记录 需求描述 需求:删除dept表里deptno为50的记录,但数据不可再恢复. 解决方法:这里通过TRUNCATE TABLE TableName方式来删除数据. 注: 数据库数据集SQL ...

  5. 对象删除某个属性_充分了解JavaScript中【对象】的概念(二)

    点击上方「蓝字」关注我们 之前的文章: 充分了解JavaScript中[对象]的概念(一) 这篇文章我们继续来讲解JavaScript中[对象]的概念,因为这是一系列的文章,所以建议从第一篇文章开始看 ...

  6. java中session对象登录_JavaWeb中Session对象的学习笔记

    一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务 ...

  7. java中对象类型转换_Java中的对象的类型转换介绍(附代码)

    本篇文章给大家带来的内容是关于Java中的对象的类型转换介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 向上转型:子类对象转为父类,父类可以是接口.公式:Father ...

  8. php怎么创建对象数组对象数组对象,在PHP中把对象当数组使用

    在PHP中把对象当数组使用 我们了解,JAVASCRIPT中,对象的属性.方法,是可以用数组的模式来访问的.但通常情况下是不可能的. 为什么要这么做?这是因为,通过这一方式,可以更加方便地操作对象,我 ...

  9. android对象申明,Kotlin中的对象表达式和对象声明的具体使用

    Kotlin的对象表达式与Java中的匿名内部类的主要区别:匿名内部类只能指定一个父类型,但对象表达式可以指定0~N个肤类型. 一.对象表达式 对象表达式的语法格式如下: object [: 0~N个 ...

  10. jsp九大内置对象与servlet中java对象

    jsp九大内置对象 request对象 : getParameter(String name)获取表单提交的数据 getParamegerNames() 获取客户端提交的所有参数名 getAttrib ...

最新文章

  1. android camera 降低帧率_Android性能问题分析之bugreport
  2. python input与返回值-python中使用input()函数获取用户输入值方式
  3. php9宫格抽奖程序_php抽奖算法(适用于九宫格、大转盘)
  4. 【AI-1000问】为什么LeNet5倒数第二个全连接层维度为84?
  5. ESX 4 无法启动vSphere Web Access
  6. mysql 数学函数
  7. Codeforces Round #307 (Div. 2) A. GukiZ and Contest 水题
  8. c语言中将整数转换成字符串_在C语言中将ASCII字符串(char [])转换为十六进制字符串(char [])...
  9. 提高数据库的查询速率及其sql语句的优化问题
  10. 人越是没钱,越要戒掉这4点毛病,否则穷苦一辈子!
  11. msf后渗透之获取登入password、远程控制、调用摄像头
  12. 计算机辅助翻译 教学大纲,《计算机辅助翻译》本科课程教学大纲翻译本科.doc...
  13. 如何解决sql server 存储过程在查询分析器快,但程序调用存储过程执行慢的问题?
  14. MATLAB将MP4转为GIF
  15. [漏洞分析] CVE-2021-3560 PolKit条件竞争本地提权分析
  16. 学生个人html静态网页制作 基于HTML+CSS+JavaScript+jquery仿苏宁易购官网商城模板
  17. FC-SAN存储技术
  18. 【总结】1334- JS中Object的keys是无序的吗
  19. 当MySQL想恋爱,java和navicate抢着做媒婆 ------ java连接MySQL数据库 navicat for MySQL 连接
  20. c语言用指针分离字符串数字与字符,c语言实验报告,指针的应用分别输出字符串中的数字和其他字符(共10篇).docx...

热门文章

  1. vb 字符串和数字相互转换函数
  2. 用C++完成三国杀(无GUI)
  3. 拓端tecdat|R语言中的马尔可夫区制转移(Markov regime switching)模型
  4. 【大数据部落】从网络图看数字媒体对传统媒体的影响
  5. 织梦支持php版本,DedeCMS不支持PHP5.3、5.4及以上版本后台500错误白屏的解决方法...
  6. Android开发教程1~3章笔记
  7. iview的select联动_render函数渲染的iview中的Select组件如何联动?
  8. lacp静态和动态区别_TTM、静态和动态市盈率的区别,三种市盈率看哪个?
  9. mysql ssl编译_MySQL8开启ssl加密
  10. make_classification参数