原因分析:ora-1536 是指的你建表的那个user 所能使用的空间没有了,不是那个表所在的tablespace 没有free space 了。你需要做的是给那个user 对那个tablespace 有更多的space 可以使用。
解决办法:
1、查看表空间限额quotas
select * from dba_ts_quotas; ‘dba_ts_quotas’描述所有表空间的限额
select * from user_ts_quotas ;‘user_ts_quotas’描述当前用户表空间的限额
‘max_bytes’字段‘-1’代表没有限额,其他值是多少就是多少
2、不对用户做表空间限额控制:
Grant unlimited tablespace to <username>;
这种方式是全局性的,或者
Alter table <username> quota <interger>[K/M] on < tablespacename >; OR
Alter able < username > quota unlimited on < tablespacename >;
这种方法是针对特定的表空间的
【注】:可以分配自然可以回收表空间限额:
Revoke unlimited tablespace from <username>; OR
Alter user <username> quota 0 on <tabespacename>;
3、总结:
表空间的大小与用户的配额大小是两种不同的概念。表空间的大小是指实际的用户表空间的大小,而配额的大小是指用户指定使用表空间的大小。把表空间文件增大,还是会出现这个问题,用户在使用表空间的同时使用空间的限额,如果超出限额,就算有空的地方,也不会让用户使用。