Oracle如何清除一个用户下的所有表(谨慎操作!)

执行该操作要慎重,不然可能会造成很严重的后果!

使用工具:

  • plsql developer
  • Oracle 数据库

前段时间部署程序的时候导入数据有问题,需要重新导入。然后保险起见把原来的表全部删掉之后再导入。清表操作就如下步骤进行的。

首先通过要清空表的用户登陆plsql,登陆进入之后sql窗口执行下列语句进行查询全部表:

SELECT 'drop  table '|| table_name || ';' FROM USER_TABLES ORDER BY TABLE_NAME;

查询结果如下图:我这里使用Oracle默认orcl库进行演示:

查询出来的结果显示不全,我们点击绿色双箭头将所有结果查询出来。

查询出来之后如下图,将查询结果全部选中复制。

再打开命令窗口,直接粘贴,然后等待执行完毕。这样就可以把用户下的所有表都清除了。

接下来等待全部执行完毕,然后再impdp就ok了。

太高级了,简直简单的不要不要的!!!!!!!

又搞定了一个大事儿。

附:oracle 删除用户和用户下的数据

有两种方法,一种是drop user  username;

还有一种是 drop user username cascade;

官方的说明如下:

Dropping a Database User: Example If user Sidney's schema contains no objects, then you can drop sidney by issuing the statement:

DROP USER sidney;

If Sidney's schema contains objects, then you must use the CASCADE clause to drop sidney and the objects:

DROP USER sidney CASCADE;

drop user username必须是这个用户下面没有任何对象;这样才可以使用这个命令,否则就会报错;

如果用户下面有对象,就得用drop user username cascade来删除这个用户以及这个用户下的所有对象了;

同时删除多个用户的话,可以用下面的方法

select 'drop user ' || username || ' cascade' || ';'
from dba_users

可以在后面根据需要加上筛选条件。

把生成的语句,批量执行就可以了。

总结

到此这篇关于Oracle如何清除一个用户下的所有表的文章就介绍到这了,更多相关Oracle清除用户的所有表内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

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

    本文实例讲述了Linux下Oracle删除用户和表空间的方法.分享给大家供大家参考,具体如下: 1.删除某个用户 SQL> conn /as sysdba Connected. SQL> drop user userName cascade; 用户已删除 如果用户无法删除,并报错: ERROR at line 1: ORA-01940: cannot drop a user that is currently connected 通过查看用户的进行,并kill用户进程,然后删除用户. SQL&

  • Oracle 删除用户和表空间详细介绍

    Oracle 删除用户和表空间 Oracle 使用时间长了, 新增了许多user 和tablespace. 需要清理一下 对于单个user和tablespace 来说, 可以使用如下命令来完成.  步骤一:  删除user drop user ×× cascade 说明: 删除了user,只是删除了该user下的schema objects,是不会删除相应的tablespace的. 步骤二: 删除tablespace DROP TABLESPACE tablespace_name INCLUDI

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

    1.如果有plsql客户端,则可以使用该用户登录,选中所有表 右键Drop即可. 2.如果有删除用户的权限,则可以: drop user user_name cascade; 加了cascade就可以把用户连带的数据全部删掉. 删除后再创建该用户. --创建用户 create user 用户名 profile default identified by 密码 default tablespace 表空间名称 temporary tablespace TEMP account unlock; --

  • shell脚本操作oracle删除表空间、创建表空间、删除用户

    oracle下表空间的导出,用户的删除,表空间删除,用户新建,表空间新建,数据导入的shell使用非oracle用户执行该脚本参数说名$1:base表空间的用户名$2:同步表空间的用户名使用场景测试用,base表空间用于升级建立一些固化数据.同步表空间用于测试用,每次去和base表空间拉平数据 复制代码 代码如下: #!/bin/shoraclehome=$ORACLE_HOMEecho $oraclehomelocaldir="/oracle/data"echo $localdir#

  • Oracle如何清除一个用户下的所有表(谨慎操作!)

    执行该操作要慎重,不然可能会造成很严重的后果! 使用工具: plsql developer Oracle 数据库 前段时间部署程序的时候导入数据有问题,需要重新导入.然后保险起见把原来的表全部删掉之后再导入.清表操作就如下步骤进行的. 首先通过要清空表的用户登陆plsql,登陆进入之后sql窗口执行下列语句进行查询全部表: SELECT 'drop table '|| table_name || ';' FROM USER_TABLES ORDER BY TABLE_NAME; 查询结果如下图:

  • 在DOS方式下对注册表进行操作的代码

    因为注册表编辑器Regedit.exe其实是一个双栖型的程序,既可在DOS下运行,也可在Windows95/98下运行.许多用户可能已经知道在Windows下使用Regedit的方法,那么,要掌握DOS方式下对注册表的编程,首先要了解在DOS下如何使用注册表编辑器. 在DOS提示符下键入Regedit命令,将出现一个帮助屏幕.此屏幕给出了其命令行参数及其使用方法. 语法: Regedit [/L:system] [/R:user] filename1 Regedit [/L:system] [/

  • Oracle报错记录被另外一个用户锁定的解决方案

    原因 当一个用户对数据进行修改时,若没有进行提交或者回滚,Oracle不允许其他用户修改该条数据,在这种情况下修改,就会出现:"记录被另外一个用户锁定"错误. 解决 查询用户.数据库锁.以及类型等 select object_id,session_id,locked_mode from v$locked_object; 或者 select t2.owner,t2.object_name,t1.session_id,t1.locked_mode from v$locked_object

  • Oracle 统计用户下表的数据量实现脚本

    要想统计用户下所有表的数据量,可以查看user_tables,此表里面是统计信息,当然这个可能不太准,要想非常精确,需要直接count表.下面的脚本有异常不中断,可以重复执行的特点. create table bk_count_tables ( owner VARCHAR2(30), table_name VARCHAR2(30), part_col varchar2(100),--分区字段 row_s number, gather_time date ); create index ind_b

  • 浅析Oracle中sys、system和Scott用户下的数据库连接问题

    system默认:manager sys默认:change_on_install 使用SQL Plus登录数据库时,system使用密码manager可直接登录. 由于为自己的密码时更改过的,所以我的密码不是使用manager登陆,但是代码格式依然是差不多的. 代码示例: conn system 输入密码:1234 conn system/输入密码 但如果是sys用户,密码必须加上as sysdba,即完整密码为:change_on_install as sysdba 代码示例: conn sy

  • Oracle数据库"记录被另一个用户锁住"解决方法(推荐)

    1.先来看看为什么会出锁住: 数据库是一个多用户使用的共享资源.当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况.若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性. 加锁是实现数据库并发控制的一个非常重要的技术.当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁.加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作. 在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X

  • Oracle 当前用户下所有表的记录总数

    分析当前用户下所有表的记录总数 保证好用! 复制代码 代码如下: begin dbms_utility.analyze_schema(user,'COMPUTE'); end; select t.table_name,t.num_rows,t.blocks,t.empty_blocks from user_tables t

  • Oracle一个用户如何访问其它用户的表应用指南

    假如Oracle中有两个用户A和B,那么如果A要访问B拥有的表,语句应该是: 复制代码 代码如下: SELECT * FROM B.TABLENAME. 我要问的是,能否通过修改Oracle的设置,将A访问B拥有表的语也变为跟B用户登录一样的语句:SELECT * FROM TABLENAME? 复制代码 代码如下: create synonym tablename for B.TABLENAME; 除了一楼的创建同义词外,还要授予A用户访问改同意词的权限. 复制代码 代码如下: drop sy

  • 探讨:Oracle数据库查看一个进程是如何执行相关的实际SQL语句

    Oracle数据库查看一个进程是如何执行相关的实际SQL语句 复制代码 代码如下: SELECT b.sql_text, sid, serial#, osuser, machine      FROM v$session a, v$sqlarea b      WHERE a.sql_address = b.address; 查询前台发出的SQL语句. 复制代码 代码如下: select user_name,sql_text  from v$open_cursor  where sid in (

  • Oracle性能究极优化 下

    正在看的ORACLE教程是:Oracle性能究极优化 下. 我们有理由相信采用新的内核版本(2.2.16-3 smp)也应该有性能的提升: OS2: Newer minor version kernel TPC Results Load Time (Seconds) 9.40 Transactions / Second 11.522 目前已经有 2.4 版本的内核,和 2.2 相比,性能上有了很大的提升,我们采用 2.4.1 smp: OS3: Newer major version kerne

随机推荐