原因: 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 * from dba_ts_quotas; select * from user_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 tablespace from user; 或者 alter user user quota 0 on user_tablespace;