ORA-01536
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORA-01536相关的知识,希望对你有一定的参考价值。
java.sql.SQLException: ORA-01536: space quota exceeded for tablespace ‘xxx‘
看到这行错误信息,第一反应是表空间满了,然后去查数据库,发现此表空间使用率才只有5.59%,非常疑惑,然后查了服务器磁盘剩余空间也还有很多,顿时有点懵。随手看了下dba_ts_quotas,靠!原来是该用户没有此表空间的权限。赋权后(顺手给了个unlimited),问题解决。
附几条sql语句做纪念吧:
1、格式化输出
set echo off;
set feedback off;
set termout off;
set heading on;
set term off;
set linesize 150;
set pagesize 100;
column TABLESPACE_NAME format a20;
column MAX_FILE_SPACE format a20;
2、表空间使用情况查询sql
select d.tablespace_name,
to_char(space,‘fm9999990.00‘)||‘MB‘ sum_space,
to_char((space-nvl(free_space,0)),‘fm9999990.00‘)||‘MB‘ used_space,
to_char((round((1-nvl(free_space,0)/space)*100,2)),‘fm990.00‘)||‘%‘ used_rate,
to_char(free_space,‘fm9999990.00‘)||‘MB‘ free_space,
s.SEGMENT_SPACE_MANAGEMENT SEGMENT,
to_char(maxspace)||‘MB‘ max_file_space,
d.data_file_count
from (select tablespace_name,round(sum(bytes)/(1024*1024),2) space,sum(blocks) blocks
,round(sum(maxbytes)/(1024*1024),2) maxspace,count(FILE_ID) data_file_count
from dba_data_files group by tablespace_name) d,
(select tablespace_name,round(sum(bytes)/(1024*1024),2) free_space
from dba_free_space group by tablespace_name) f,
(select TABLESPACE_NAME,SEGMENT_SPACE_MANAGEMENT from dba_tablespaces) s
where d.tablespace_name = f.tablespace_name and
f.tablespace_name = s.tablespace_name
;
3、赋权
select * from dba_ts_quotas;
alter user 用户名 quota unlimited on 表空间名; (quota可以设置具体字节数,也可以设置无限unlimited)
本文出自 “菩提” 博客,请务必保留此出处http://zhangxingnan.blog.51cto.com/3241217/1783834
以上是关于ORA-01536的主要内容,如果未能解决你的问题,请参考以下文章
ORA-01536: 超出表空间 'tablespace_name' 的空间限额
ORA-01033 ORA-01109 ORA-01034 ORA-12514 ORA-24324 ORA-01041 ORA-01157 ORA-01110
翻译自mos文章执行utlpwdmg.sql之后报ORA-28003, ORA-20001, ORA-20002, ORA-20003, ORA-20004 错误