当前位置: 首页 > >

oracle+超出表空间限额,Oracle异常:Caused by: java.sql.SQLException: ORA-01536: 超出表空间 '登录名' 的空间限额 (JPA保存数据)...

发布时间:

原因: Oracle表空间为0,没有分配空间内存.


解决办法在代码框里:


1. 查看用户表空间的限额


select * from user_ts_quotas;


max_bytes字段就是了


-1是代表没有限制,其它值多少就是多少了.


2. 不对用户做表空间限额控制:


GRANT UNLIMITED TABLESPACE TO ***(用户);


----------------------------------------------------------------------------------------------------------------------


这种方式是全局性的.


或者


alter user ***(用户名) quota unlimited on ***(表空间);


这种方式是针对特定的表空间的.


可以分配自然也可以回收了:


revoke unlimited tablespace from ***(用户)


或者


alter user *** quota 0 on ***


ps:


表空间的大小与用户的配额大小是两种不同的概念。表空间的大小是指实际的用户表空间的大小,而配额大小指的是用户指定使用表空间的的大小


把表空间文件增大,还是出现这个问题,用户在使用表空间的同时使用空间的限额,如果超出限制,就算有空的地方,也不会让用户使用。


遇到ORA-01536错误,首先要查看用户的表空间的限额select * fromdba_ts_quotas;select * fromuser_ts_quotas;


max_bytes字段-1是代表没有限制,其它值多少就是多少.


dba_ts_quotas :描述所有用户表空间的限额


user_ts_quotas :描述当前用户表空间的限额。


如果查询结果中max_bytes字段不为-1,修改为无限制或者指定的大小。


不对用户做表空间限额控制:


GRANT UNLIMITED TABLESPACE TOuser;


这种方式是全局性的。 或者


alter user user quota unlimited on user_tablespace;


这种方式是针对特定的表空间的.


回收表空间限额控制:


revoke unlimited tablespacefromuser;


或者


alter user user quota0 on user_tablespace;



友情链接: