暂无图片
oracle12.2删除表空间删除不了,但是查询又没有
我来答
分享
ycy
2022-09-23
oracle12.2删除表空间删除不了,但是查询又没有



回收站也清空了,查询u,p都没有,但是就是不叫删除

我来答
添加附件
收藏
分享
问题补充
6条回答
默认
最新
ycy

好的,多谢

暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
刘贵宾
2022-09-23
你是采纳错了么
刘贵宾

1) Disable the Constrains:

SQL> select 'ALTER TABLE '||owner||'.'||table_name||' DISABLE CONSTRAINT '|| constraint_name||';'
from dba_constraints
where (index_owner,index_name) in (select owner,index_name from dba_indexes
where tablespace_name='MY_TBS');

2) In case of PKs, you may need to disable it with CASCADE clause:

SQL> select 'ALTER TABLE '||owner||'.'||table_name||' DISABLE CONSTRAINT '|| constraint_name||' cascade;'
from dba_constraints
where (index_owner,index_name) in (select owner,index_name from dba_indexes
where tablespace_name='MY_TBS');

3) Drop the tablespace:

SQL> DROP TABLESPACE MY_TBS INCLUDING CONTENTS AND DATAFILES;

暂无图片 评论
暂无图片 有用 5
打赏 0
墨天轮福利君
2022-09-23
提问者采纳错了,因无法修改采纳,下周一发放采纳金会在原采纳数上+1谢谢老师解答
zhangyfr
2022-09-24
👍🏻
Thomas

补充一下,既然是分别处理U和P,那么第一二句可合并成以下:

select 'ALTER TABLE '||owner||'.'||table_name||' DISABLE CONSTRAINT '|| constraint_name||decode(constraint_type ,'P',' CASCADE','')||';'
from dba_constraints where constraint_type in ('U','P') and (index_owner,index_name) in
(select owner,index_name from dba_indexes where tablespace_name='INDX');


暂无图片 评论
暂无图片 有用 0
打赏 0
ycy

还有一个问题,执行了这个sql后,DROP TABLESPACE MY_TBS INCLUDING CONTENTS AND DATAFILES;发现磁盘空间大小还是没变,我新建了一个表空间在data1上面,发现表空间使用率还是和原来一样



暂无图片 评论
暂无图片 有用 0
打赏 0
zhangyfr

··

暂无图片 评论
暂无图片 有用 0
打赏 0
ycy

用lsof | gerp deleted发现删除的文件没有释放,最后用kill pid,磁盘文件释放了

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
Oracle 中央库存目录 (oraInventory)
回答 2
已采纳
D
Oracle 已经搭建好DG的两台机 怎么可以在主库上增加数据文件 映射到另外一个路径?
回答 4
看一下standbyfilemanagement这个参数是不是设置的MANUAL备库这个参数要设置为auto
oracle数据库,如何导入blob字段?请指教。
回答 1
我以前写过一个存储过程。先建立表,然后要用到这个的dbmslob.fileopen(bfileloc,0);具体要查查去了。
扩展字段字符长度问题
回答 1
扩展就行了。先在测试环境操作一次,数据量大,可能时间长。
LOB字段的RETENTION属性为空
回答 3
lob字段这样查不到
Oracle 触发器没有生效是写错了吗?
回答 1
beforeinsertorupdate改为afterinsertorupdate
oracle rman备份认为过期的逻辑
回答 3
已采纳
crosscheck和delete之前执行RMAN>reportobsolete;作用:1、对数据文件备份的处理:对于每一个已经备份的数据文件,rman会在保留策略内标识出一个最老的的全数据备份
Oracle中几亿表要复制到建了分区的新表, 有没有好方法提高执行速度?
回答 2
如果你9亿的数据是要放到一个空分区里,可以使用交换分区,语法altertable目标表exchangepartition目标空分区withtable源表;
SQL语句编写咨询
回答 3
没有写哪种数据库和相关版本哦,不同数据库SQL的写法有差异
数据集成
回答 2
可以尝试下国内的ETLCloud,提供很多数据集成和转换功能,支持多种数据源的连接和转换操作,包括数据格式转换、数据清洗、字段映射等操作,能够将转换后的数据加载到目标系统中,可视化操作界面,刚进门也能