oracle执行过程,但是没有结果生成,表空间不足问题

本文探讨了在测试环境中运行存储过程时,因表空间已满导致数据未生成的问题。通过检查源表数据、查看错误日志、分析表空间大小,并采取扩容表空间、快速清理无用数据等措施,最终成功生成所需数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这次在测试环境跑存储过程,但是在相应的表中没有出现数据,但是在前一次执行是有数据的。这一次应该是生成上一次相同的数据。所以
1:先看源表的数据是不是符合存储过程的筛选。
2:可以通过筛选,然后看错误日志
EXCEPTION
WHEN OTHERS THEN
–插入错误日志表
错误处理XXXX
–返回失败标志
RETURN FALSE;
这是异常处理逻辑
所以可以看错误表中的日志。看到提示是XXXX表空间已满
3:查看表空间的大小:
select
b.file_id “文件ID号”,
b.tablespace_name “表空间名”,
b.bytes/1024/1024||’M’ “字节数”,
(b.bytes-sum(nvl(a.bytes,0)))/1024/1024||’M’ “已使用”,
sum(nvl(a.bytes,0))/1024/1024||’M’ “剩余空间”,
100 - sum(nvl(a.bytes,0))/(b.bytes)*100 “占用百分比”
from dba_free_space a,dba_data_files b
where a.file_id=b.file_id
group by b.tablespace_name,b.file_id,b.bytes
order by b.file_id;
4:扩容表空间:(需要有相应的权限,或者请DBA执行)
第一步:查看表空间的名字及文件所在位置:
select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name
第二步:增大所需表空间大小
alter database datafile ‘表空间位置’resize 新的尺寸。
例如:alter database datafile ‘\oracle\oradata\test_2008.dbf’ resize 400m。
第三步:设置表空间自动扩展:alter database datafile ‘\oracle\oradata\anita_2008.dbf’ autoextend on next 100m maxsize 10000m
之后执行就可以生成数据了。
5:快速处理
可以删除一些无用的数据,然后也可以使空间增多。当然不要在生成环境执行。在测试环境并且需要尽快处理的时候可以用下这个方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值