精华内容
下载资源
问答
  • 删除oracle用户下所有的,不是系统用户哦!不然会删掉系统的数据
  • Oracle 删除用户和表空间

    万次阅读 多人点赞 2012-04-18 08:54:32
    Oracle 使用时间长了, 新增了许多user tablespace. 需要清理一下 对于单个usertablespace 来说, 可以使用如下命令来完成。  步骤一: 删除user drop user ×× cascade 说明: 删除了user,只是...

    Oracle 使用时间长了, 新增了许多user 和tablespace. 需要清理一下

    对于单个user和tablespace 来说, 可以使用如下命令来完成。

     步骤一:  删除user

    drop user ×× cascade

    说明: 删除了user,只是删除了该user下的schema objects,是不会删除相应的tablespace的。

    步骤二: 删除tablespace

    DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;



    但是,因为是供开发环境来使用的db, 需要清理的user 和 table space 很多。

    思路

     Export出DB中所有的user和tablespace, 筛选出系统的和有用的tablespace,把有用的信息load到一张表中去。

    然后写例程循环,把不在有用表的tablespace删掉

    1. select username,default_tablespace from dba_users;

    2. 

    create table MTUSEFULSPACE
    (
       ID Number(4) NOT NULL PRIMARY KEY,
       USERNAME varchar2(30),
       TABLESPACENAME varchar2(60),
       OWNERNAME varchar2(30)
    );

    3.

    declare icount number(2);
            tempspace varchar2(60);
    begin
      for curTable in (select username as allusr,default_tablespace as alltblspace from dba_users)
      loop
      tempspace :=curTable.alltblspace;
      dbms_output.put_line(tempspace);
      select count(TABLESPACENAME) into icount from MTUSEFULSPACE where TABLESPACENAME = tempspace;
      if icount=0 then
        DROP TABLESPACE tempspace INCLUDING CONTENTS AND DATAFILES;
      end if;
      commit;
      end loop;
    end;


    执行后会报如下错误

    ORA-06550: 第 10 行, 第 5 列:
    PLS-00103: 出现符号 "DROP"在需要下列之一时:
     begin case declare exit
       for goto if loop mod null pragma raise return select update
       while with <an identifier>
       <a double-quoted delimited-identifier> <a bind variable> <<
       close current delete fetch lock insert open rollback
       savepoint set sql execute commit forall merge pipe
    06550. 00000 -  "line %s, column %s:\n%s"
    *Cause:    Usually a PL/SQL compilation error.
    *Action:


    好像是被锁了。。



    没办法,例程不能写,就只能组出语句执行了。

    把需要删除的user, tablespace 导出到Excel. 使用CONCATENATE 组出SQL.

    贴到SQLdevelop 批量执行。


    整个删除会比较耗时间, 100多个user.  用了12个小时左右。



    如要找datafile的具体位置,可以使用

    select t1.name,t2.name from v$tablespace t1, v$datafile t2 where t1.ts# = t2.ts#;


    SQL code
    --删除空的表空间,但是不包含物理文件
    drop tablespace tablespace_name;
    --删除非空表空间,但是不包含物理文件
    drop tablespace tablespace_name including contents;
    --删除空表空间,包含物理文件
    drop tablespace tablespace_name including datafiles;
    --删除非空表空间,包含物理文件
    drop tablespace tablespace_name including contents and datafiles;
    --如果其他表空间中的表有外键等约束关联到了本表空间中的表的字段,就要加上CASCADE CONSTRAINTS
    drop tablespace tablespace_name including contents and datafiles CASCADE CONSTRAINTS;


    展开全文
  • oracle删除用户下的所有

    千次阅读 2019-02-11 21:13:32
    oracle删除用户下的所有
                   

    删除表有2个办法

     

    1,删除用户 这是最快的方法

    2,生成删除语句

     

     

     

    方法一

     

     

    drop user  xxx  cascade;

     

    方法二

     

    你需要创建这些删除语句,通过oracle的数据字典找到该用户下的所有表、视图等对象,拼接成语句。如下select 'drop table ' || table_name ||';'||chr(13)||chr(10) from user_tables;  --delete tablesselect 'drop view ' || view_name||';'||chr(13)||chr(10) from user_views;  --delete viewsselect 'drop sequence ' || sequence_name||';'||chr(13)||chr(10) from user_sequences;--delete seqsselect 'drop function ' || object_name||';'||chr(13)||chr(10) from user_objects  where object_type='FUNCTION';--delete functionsselect 'drop procedure ' || object_name||';'||chr(13)||chr(10) from user_objects  where object_type='PROCEDURE';--DELETE PROCEDUREselect 'drop package ' || object_name||';'||chr(13)||chr(10) from user_objects  where object_type='PACKAGE';--delete pags 
               

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • oracle删除用户和表空间

    千次阅读 2018-09-19 16:11:26
    查询用户的相关信息: ...删除空间它的系统文件: drop tablespace PRECISE_CLIENT including contents and datafiles; 如果发现不能删除用户,应该是用户还有连接,查询用户的连接: select usernam...

    查询用户的相关信息:
    select * from DBA_USERS;

    删除用户:
    drop user PRECISE_CLIENT cascade;

    删除表空间和它的系统文件:
    drop tablespace PRECISE_CLIENT including contents and datafiles;

    如果发现不能删除用户,应该是用户还有连接,查询用户的连接:
    select username,sid,serial# from v$session where username=’ PRECISE_CLIENT’;

    查询出他的sid,serial#,然后杀掉:
    alter system kill session ‘1505,81’;

    再次查询,可以查询它的状态:
    select saddr,sid,serial#,paddr,username,status from v$session where username=’ PRECISE_CLIENT’ ;
    发现他的状态为KILLD时,已经杀掉,再次执行删除用户即可;

    删除用户,再删除表空间,必须保证表空间没有用户使用才能删除!

    展开全文
  • Oracle数据库删除用户和表空间

    万次阅读 2018-08-09 09:51:45
    1、以system用户登录查找需要删除的用户(普通用户没有删除权限) select * from dba_users;...3、删除用户和表空间 drop user usernamecascade; drop tablespace tablespacename including contents...

    1、以system用户登录查找需要删除的用户(普通用户没有删除权限)

    select * from dba_users;

    2、查询需要删除用户对应的表空间

    select * from dba_data_files;

    3、删除用户和表空间

    drop user usernamecascade;

    drop tablespace tablespacename including contents and datafiles cascade constraint;

    在删除用户时可能会碰到无法删除当前连接的用户,这是由于还有数据库连接到该用户,有会话存在,需要先删除会话。

    最暴力的做法是直接shutdown数据库,然后重启即可。。。

    一般的操作是通过查询SessionID,手动杀掉会话再删除用户:

    1)查询连接情况:select username,sid,serial# from v$session;

    2)找到要删除用户的sid和serial并删除:alter system kill session 'sid,serial';

    再执行删除用户的操作,如果还是无法删除说明还有连接的会话,继续执行删除会话的操作。

    展开全文
  • oracle删除用户空间

    万次阅读 2019-05-12 17:47:59
    1、以sysdba用户(最高权限)登录,查找需要删除的用户...2、查询需要删除用户对应的空间 SELECT * FROM User_Tablespaces; drop tablespace DATA_MKDB_TMP including contents AND datafiles; select * from ...
  • 1. 删除用户 如果要删除的用户当前没有连接,则可以直接用下面语句删除; 如果要删除的用户当前存在连接,转到 Oracle删除当前连接用户 /* CASCADE 的意思是将用户的数据库数据一并删除,并没有删除相应的...
  • Oracle删除用户以及用户下数据

    万次阅读 2018-12-13 14:39:22
    Oracle删除用户下所有对象的方法未必人人都会,下面就为您介绍两种常用的Oracle删除用户下所有对象的方法,希望对您学习Oracle删除用户方面能有所帮助。 方法1: drop user XXXX cascade; drop tablespace XXXX ...
  • Oracle删除用户与删除

    千次阅读 2018-08-12 19:02:00
    删除用户: drop user user_name cascade; #级联删除该用户下所有的数据对象 删除:drop table table_name purge; #删除同时清空回收站
  • Oracle删除用户下的sequence

    千次阅读 2017-08-31 19:18:19
    --Oracle删除用户下的sequence declare owner_name varchar(20); cursor cur1 is select sequence_name from user_sequences; begin owner_name := '用户名'; for cur2 in cur1 loop
  • Oracle删除当前用户下所有的的方法 如果有删除用户的权限,则可以: drop user user_name cascade; 加了cascade就可以把用户连带的数据全部删掉。 删除后再创建该用户。 如果没有删除用户的权限,则可以执行: ...
  • 删除用户以及用户下的所有 语法: drop user 用户名 cascade ps : 删除用户名为test的用户 drop user test cascade   oracle 建表授权: ...
  • –登录用户名与密码为需要删除用户 SET HEAD OFF; SPOOL e:/drop_tables.sql; –delete tables select ‘drop table ’ || table_name ||’;’||chr(13)||chr(10) from user_tables; –delete views select ‘drop...
  • ORACLE 删除当前用户下所有的

    千次阅读 2018-08-14 17:16:10
    1、如果有删除用户的权限,则可以: -- 加了cascade就可以把用户连带的数据全部删掉 drop user ayzx_dev cascade; 删除后再创建该用户,重新授权即可 SQL&amp;gt; create user ayzx_dev identified by ...
  • 转载:http://kingxss.iteye.com/blog/1741076创建用户和表空间: 1、登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切换成oracle用户)2、以sysdba方式来打开sqlplus,命令如下: ...
  • Oracle——删除用户以及用户下数据

    万次阅读 2017-05-22 09:27:23
    Oracle删除用户下所有对象的多种方法 2015-09-22 13:12 8299人阅读 评论(0) 收藏 举报  分类: Oracle数据库基本管理(336) oracle安装升级与卸载(75) oracle开发SQL语句(273) oracle...
  • Oracle删除当前用户下所有

    万次阅读 2019-03-04 13:59:40
    pl/sql连接oracle,执行以下sql。 SELECT 'drop table '|| table_name || ';' FROM USER_TABLES ORDER BY TABLE_NAME; 将查询所得结果,复制粘入command窗口即可。
  • oracle登录、oracle有关用户和表空间的命令 创建表空间 创建用户用户授权
  • ORACLE删除某个特定用户下的所有数据
  • 在创建oracle 数据的空间,用户之前,建议先对oracle数据库的体系结构有一个简单的了解,这样更容易掌握对表空间和用户的操作。 关于oracle的体系结构,可以参考我之前的文章,对oracle做了简单介绍。欢迎阅读。...
  • Oracle创建/删除表空间和用户

    万次阅读 2016-08-27 23:23:11
    创建空间和用户开启Oracle服务 Win+R输入cmd打开命令提示符窗口 登录 sqlplus /nolog connect /as sysdba; 先创建空间 create tablespace tablespace_name logging datafile ‘D:\test1.dbf’ size 1024m;...
  • 以system用户登录,查找需要删除的用户: –查找用户 select * from dba_...–删除用户 drop user 用户名称 cascade; –删除空间 drop tablespace 空间名称 including contents and datafiles cascade const...
  • oracle删除某个用户所有

    千次阅读 2010-11-03 13:12:00
    oracle删除某个用户所有
  • 创建用户和表空间,创建完后直接可以登录连接: CREATE TABLESPACE "TABLESPACE01" DATAFILE 'TABLESPACE01_DATA.DBF' SIZE 268435456 AUTOEXTEND ON NEXT 2097152 MAXSIZE 34359721984 BLOCKSIZE 8192 ...
  • 删除oracle用户时,报错提示“无法删除当前已连接用户”。 解决方法如下: 1.查看用户的连接状况 select username,sid,serial# from v$session (若想具体查询某个用户,则在语句后接上 where username = ...
  • oracle数据库用户删除空间删除

    万次阅读 2017-11-08 09:26:51
    以system用户登录,查找需要删除的用户: --查找用户 select * from dba_users;...--删除用户 drop user 用户名称 cascade; --删除空间 drop tablespace 空间名称 including contents and datafil

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 223,779
精华内容 89,511
关键字:

oracle删除用户和用户下的表