您的位置:首页 > 数据库 > Oracle

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

2016-04-18 21:43 615 查看
这次在测试环境跑存储过程,但是在相应的表中没有出现数据,但是在前一次执行是有数据的。这一次应该是生成上一次相同的数据。所以

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:快速处理

可以删除一些无用的数据,然后也可以使空间增多。当然不要在生成环境执行。在测试环境并且需要尽快处理的时候可以用下这个方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle