我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Oracle中怎么删除用户和表空间

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Oracle中怎么删除用户和表空间

Oracle中怎么删除用户和表空间,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

Oracle 删除用户和表空间

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 pipe06550. 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;

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Oracle中怎么删除用户和表空间

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

oracle怎么删除用户和表空间

要删除Oracle用户和表空间,可以按照以下步骤进行操作:1. 登录到Oracle数据库的管理员账号(如sys用户)。2. 确保当前要删除的用户已经退出数据库会话,可以使用以下命令强制断开与用户的连接:```ALTER SYSTEM KIL
2023-08-23

oracle 删除表空间与用户

以system用户登录,查找需要删除的用户:--查找用户select  * from dba_users;--查找工作空间的路径select * from dba_data_files;  --删除用户drop user 用户名称 cascade;--删除表空
oracle   删除表空间与用户
2021-06-06

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

oracle下表空间的导出,用户的删除,表空间删除,用户新建,表空间新建,数据导入的shell使用非oracle用户执行该脚本参数说名$1:base表空间的用户名$2:同步表空间的用户名使用场景测试用,base表空间用于升级建立一些固化数据
2022-06-04

oracle 删除用户后释放表空间

有个用户占用大量存储。删除之后表空间没有释放。。。。 网上百度一番后: 先使用语句查询表空间大小 HWM。HWM说明参考:https://www.cnblogs.com/husam/p/6604437.html select file_name, ceil((
oracle 删除用户后释放表空间
2019-10-09

oracle怎么删除表空间

要删除一个表空间,可以按照以下步骤进行操作:首先,确保没有表或索引等对象依赖于这个表空间。可以通过查询系统视图来确认:SELECT * FROM DBA_TABLES WHERE TABLESPACE_NAME = ‘
oracle怎么删除表空间
2024-04-09

如何编写shell脚本操作oracle删除表空间、创建表空间、删除用户

本篇内容介绍了“如何编写shell脚本操作oracle删除表空间、创建表空间、删除用户”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!orac
2023-06-09

oracle怎么删除表空间文件

在Oracle中,要删除表空间文件,可以按照以下步骤进行操作:1. 首先,确认要删除的表空间文件不再被数据库使用。可以使用以下语句查询表空间的状态:```sqlSELECT status FROM dba_tablespaces WHERE
2023-08-18

Oracle怎么删除临时表空间

要删除Oracle临时表空间,您可以按照以下步骤进行操作:首先,确保没有用户正在使用临时表空间。您可以通过执行以下SQL查询来检查:SELECT username FROM v$session WHERE tablespace_name
Oracle怎么删除临时表空间
2024-04-09

oracle删除表空间及用户的方法是什么

要删除一个表空间和其关联的用户,可以按照以下步骤进行操作:首先,登录到Oracle数据库中,使用sysdba权限登录。确保目标表空间和用户已经备份,以防止误操作导致数据丢失。首先,将用户从表空间中移除:ALTER USER username
oracle删除表空间及用户的方法是什么
2024-04-09

oracle怎么删除表空间所有的表

要删除表空间中的所有表,可以使用以下步骤:首先,确保没有任何会话正在使用该表空间中的任何表。使用以下语句连接到数据库并切换到要删除表空间的用户:CONNECT username/password然后使用以下语句查询该表空间中的所有表名:SE
oracle怎么删除表空间所有的表
2024-04-09

oracle怎么删除临时表空间文件

要删除Oracle临时表空间文件,您需要执行以下步骤:首先,确定哪个临时表空间文件要删除。您可以使用以下查询来查看临时表空间文件的信息:SELECT TABLESPACE_NAME, FILE_NAME FROM DBA_TEMP_FILE
oracle怎么删除临时表空间文件
2024-04-09

oracle删除表空间报错怎么解决

当Oracle删除表空间时报错,可能有以下几种情况:表空间中包含对象或数据文件正在被使用:在删除表空间之前,需要确保表空间中不包含任何对象或数据文件,并且没有正在使用的会话。可以使用以下命令查询表空间中是否有正在使用的对象:SELECT
2023-10-24

oracle删除数据后怎么释放表空间

在Oracle数据库中,使用DELETE语句删除数据只会删除数据行,而不会释放表空间。如果需要释放表空间,可以使用以下方法:使用TRUNCATE语句:TRUNCATE语句会删除表中的所有数据并释放表空间。它比DELETE语句更快,因为它不会
2023-10-26

oracle怎么删除表空间及数据文件

要删除表空间及数据文件,需要执行以下步骤:首先确认要删除的表空间及数据文件是否在使用中,可以通过以下SQL语句查询:SELECT tablespace_name, file_name FROM dba_data_files WHERE
oracle怎么删除表空间及数据文件
2024-05-11

编程热搜

目录