ORA-01536: 超出表空间 'tablespace_name' 的空间限额
表空间限额问题
知识总结:
表空间的大小与用户的配额大小是两种不同的概念
表空间的大小是指实际的用户表空间的大小,而配额大小指的是用户指定使用表空间的的大小
把表空间文件增大,还是出现这个问题,用户在使用表空间的同时使用空间的限额,如果超出 限制, 就算有空的地方,也不会让用户使用
视图:
dba_ts_quotas : DBA_TS_QUOTAS describes tablespace quotas for all users.
user_ts_quotas :USER_TS_QUOTAS describes tablespace quotas for the current user. This view does not display the USERNAME column.
查看用户的表空间的限额
select * from dba_ts_quotas;
select * from user_ts_quotas;(查看当前没dba权限的用户的表空间限额,要用要查看的用户登录,也就是看自己的权限)
max_bytes字段就是了
-1是代表没有限制,其它值多少就是多少了.
用户表空间限额的创建与更改:
1.创建用户时,指定限额
eg:
CREATE USER SKATE IDENTIFIED BY SKATE_PWD
DEFAULT TABLESPACE SKATE_TS
TEMPORARY TABLESPACE temp
QUOTA 3M ON SKATE_TS
PASSWORD EXPIRE;
2.更改用户的表空间限额:
A:不对用户做表空间限额控制:
GRANT UNLIMITED TABLESPACE TO skate;
这种方式是全局性的.
或者
alter user USER_NAME quota unlimited on TABLESPACE_NAME;(用此方法改变表空间限额问题)
这种方式是针对特定的表空间的.
3.可以分配自然也可以回收了:
revoke unlimited tablespace from skate;
或者
alter user skate quota 0 on SKATE_TS;