`

ORACLE下删除当前用户下所有对象

阅读更多
ORACLE下删除当前用户下所有对象的SQL,这个是转别人的,但是,做了修改和注释
--删除某个用户下的对象
set heading off;
set feedback off;
spool c:\dropobj.sql;
  prompt --Drop constraint
 select 'alter table '||table_name||' drop constraint '||constraint_name||' ;' from user_constraints where constraint_type='R';
 prompt --Drop tables
 select 'drop table '||table_name ||';' from user_tables; 
 
 prompt --Drop view
 select 'drop view ' ||view_name||';' from user_views;
 
 prompt --Drop sequence
 select 'drop sequence ' ||sequence_name||';' from user_sequences; 
 
 prompt --Drop function
 select 'drop function ' ||object_name||';'  from user_objects  where object_type='FUNCTION';

 prompt --Drop procedure
 select 'drop procedure '||object_name||';' from user_objects  where object_type='PROCEDURE';
 
 prompt --Drop package
 prompt --Drop package body
 select 'drop package '|| object_name||';' from user_objects  where object_type='PACKAGE';

 prompt --Drop database link
 select 'drop database link '|| object_name||';' from user_objects  where object_type='DATABASE LINK';
 
spool off;
set heading on;
set feedback on;

@@c:\dropobj.sql;
host del c:\dropobj.sql;


注释:
1.上面这个语句,在pl/sql里面是放在命令里面执行的。
2.set heading off; 意思就是关闭表头。如果不关闭,写入dropobj.sql文件中就会带有结果集的表头如:
'DROPTABLE'||TABLE_NAME||';'
------------------------------------------
drop table TEACHER;
实际上我们需要的是“drop table TEACHER;”,“'DROPTABLE'||TABLE_NAME||';'
”就是表头。
3.set feedback off; 意思就是关闭回显。如果不关闭,写入dropobj.sql文件中就会带有返回结果集的大小等信息,如:"137 rows selected"
4.spool c:\dropobj.sql; 把结果集写入这个文件。spool off; 结束写入。
5.@@c:\dropobj.sql; 执行这个sql
6.host del c:\dropobj.sql; 删除主机上这文件。
7.CONSTRAINT_TYPE 就是键的类型:
C (check constraint on a table) 
P (primary key) 
U (unique key)
R (referential integrity)
V (with check option, on a view)
O (with read only, on a view)

8.当执行'drop package ………… '这句时,package body会被同时删除。
分享到:
评论
3 楼 vlinux 2009-04-27  
何必呢

select 'DROP '||object_type||' '||object_name||';' from user_objects;

如果有表关联的,多执行几次就好了
2 楼 hackiller 2009-04-27  

谢谢,很好用,并有帮助理解的注释。
1 楼 liucl_tiger 2008-11-02  
学习了!谢谢!

相关推荐

    Oracle数据库删除当前用户下全部对象

    该脚本为删除当前用户全部数据库对象,请慎重执行,仅适用于Oracle数据库。

    删除ORACLE某个用户下所有数据

    ### 删除Oracle某个用户下所有数据 在Oracle数据库管理过程中,有时候我们需要清理某个用户下的所有数据。这可能是因为项目结束、测试环境重置或是其他原因导致的。为了完成这一任务,我们可以通过一系列SQL命令来...

    删除oracle下当前用户创建的所有对象

    总之,删除Oracle数据库中的所有用户对象是一项涉及多个数据库对象和复杂操作的任务。通过理解每个对象的作用和使用适当的SQL命令,可以有效地完成这个任务。在实际操作中,应遵循最佳实践,确保数据安全和系统的...

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

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

    Oracle删除当前用户下所有表的方法适用于有或没有删除权限

    在Oracle数据库管理中,删除当前用户下的所有表是一项常见的任务,尤其在测试环境或数据库清理时。本篇文章将详细介绍两种不同权限情况下删除用户及其表的方法,以及如何创建新用户并授予相应权限。 首先,如果你...

    oracle 其他数据库对象

    Oracle数据库的核心组成部分之一就是模式对象,这些对象是数据库中用户定义的对象,包括表、视图、索引等。模式对象属于数据库中的一个特定模式(schema),每个模式对应一个数据库用户。以下是Oracle数据库中几种常见...

    oracle 误删除表恢复

    Oracle自10g版本起引入了回收站(Recycle Bin)的概念,这一特性允许用户恢复已删除的对象,包括表、索引等。通过回收站机制,即使一个表被意外删除,也可以轻松将其恢复到删除前的状态。 #### 回收站的工作原理 当...

    彻底删除 Oracle 的数据表

    当用户执行DELETE或DROP命令时,默认情况下,被删除的对象不会立即从数据库中消失,而是会被移动到回收站中,以便于在必要时恢复这些对象。这种方式虽然增加了数据安全性,但有时也会给系统维护带来不便,尤其是当...

    查看ORACLE用户权限

    与系统权限类似,`dba_tab_privs`提供所有用户的对象权限信息,`all_tab_privs`显示当前用户可访问的所有对象权限,`user_tab_privs`则专门针对当前用户。 ### 4. 查看角色 角色是权限的集合,用于简化权限管理。...

    Linux下Oracle删除用户和表空间的方法

    在Linux环境下管理Oracle数据库时,有时需要删除不再使用的用户及其关联的表空间。这通常涉及到数据库的安全性和资源优化。本文将详细介绍如何在Linux下的Oracle环境中删除用户和表空间,以及处理可能遇到的问题。 ...

    Oracle创建删除用户、角色、表空间、导入导出命令总结.txt

    ### Oracle 创建删除用户、角色、表空间、导入导出命令总结 #### 一、表空间管理 表空间是Oracle数据库中的基本存储单元,用于管理数据文件。以下为创建临时表空间与非临时表空间的命令示例: 1. **创建临时表...

    oracle怎么删除用户提供解决方案

    在Oracle中删除用户时提示:ORACLE无法删除当前连接用户可以用以下语句 Sql代码 SQL> 代码如下:select username,sid,serial# from v$session; USERNAME SID SERIAL# —————————— ———- ———- 1 1 2 1 3...

    Oracle常用对象大全及实例详解.pdf

    `USER_TABLES`、`ALL_TABLES`和`DBA_TABLES`是系统视图,分别提供当前用户、所有权限用户和所有数据库中的表信息。例如,`DESCRIBE`命令可以查看表结构,`SELECT`语句可用于检索特定表的信息。 2. **段**:段是数据...

    oracle用户在cmd下创建以及一些相关操作

    ### Oracle 用户在 CMD 下创建及相关操作 #### 创建 Oracle 用户 在 Oracle 数据库管理中,通过命令行(CMD)创建用户是一项基本而重要的任务。这不仅适用于 Oracle 10g 版本,同样也适用于其他版本。下面详细介绍...

    Oracle恢复误删除数据,解除锁定的等SQL语句

    - 查看所有用户:`SELECT * FROM DBA_USERS` - 查看用户系统权限:`SELECT * FROM DBA_SYS_PRIVS` - 查看用户对象权限:`SELECT * FROM DBA_TAB_PRIVS` - 查看所有角色:`SELECT * FROM DBA_ROLES` - 查看用户...

    Oracle 删除所有表,视图,序列,函数,存储过程等SQL

    ### Oracle删除所有表、视图、序列、函数、存储过程等SQL知识点详解 #### 一、概述 在Oracle数据库管理中,有时会遇到需要彻底清除某个模式下的所有对象的情况,如表、视图、序列、函数、存储过程或包等。这种需求...

    ORA-01940:无法删除当前已连接的用户

    在Oracle数据库管理中,"ORA-01940:无法删除当前已连接的用户"是一个常见的错误,它表示尝试删除的用户当前正处于活动状态,即至少有一个会话(session)与该用户关联。要成功删除用户,必须先断开所有相关会话。...

    oracle中记录用户登录信息的触发器的例子

    为了解决这类问题,可以使用`DROP TABLE`和`DROP TRIGGER`命令先删除原有的对象,然后再重新创建。 ```sql SQL> drop table logon_table; SQL> drop trigger logon_trigger; ``` 此外,如果在创建触发器时出现语法...

    oracle物理表空间删除修复命令

    1. **物理表空间**:Oracle中的物理表空间是由一个或多个操作系统级别的文件(即数据文件)组成的逻辑容器,用于存储用户的数据和对象。 2. **数据文件**:每个物理表空间至少包含一个数据文件,这些文件存储在操作...

Global site tag (gtag.js) - Google Analytics