在向oracle数据库插入数据时,引发超出表空间的空间限额异常。
异常信息:
Caused by: java.sql.SQLException: ORA-01536: 超出表空间 'tb_user' 的空间限额
原因分析:
对于ORA-01536错误,首先先查看表空间的限额容量:
select * from dba_ts_quotas;
select * from user_ts_quotas;
// dba_ts_quotas :描述所有用户表空间的限额
// user_ts_quotas :描述当前用户表空间的限额。
重点检查max_bytes字段,如果显示-1,则代表没有限制,其他值是多少就是多少了。
如果查询结果中max_bytes字段不为-1,修改为无限制或者指定的大小。
解决方案:
1.全局解决
GRANT UNLIMITED TABLESPACE TO tb_user;
2.局部对特定的表空间做修改
alter user user quota unlimited on user_tablespace;
也可以进行回收表空间限额控制:
revoke unlimited tablespace from tb_user;
alter user user quota 0 on user_tablespace;