oracle 01536,Oracle中的ORA-01536(表空间限额不够)的解决方法

1. 错误场景: 今天在测试一个功能的时候遇到了ORA-01536错误,具体如下 SQL> create table t_row_col_change (n number, str varchar2(100)); create table t_row_col_change (n number, str varchar2(100)) * 第 1 行出现错误: ORA-01536: 超出表空间 'USERS' 的空间限额 2. 解决过程: 开始以为是表空间不够用了,看了下,的确USERS表空间下只剩下2%不到的空间了,于是新建了一个数据文件增加表空间,可是再次运行还是一样的ORA-01536; google了一把,发现正确的解决方法如下,找一个DBA用户,运行下面这句SQL SQL> alter user hetaoblog quota 400m on USERS; 用户已更改。 将hetaoblog在USERS表空间上的限额去掉; 注: a. 之前运行create table这句SQL的用户是hetaoblog, 这个要替换成你直接的数据库用户名; b. 前面create table没有指定表空间,所以默认在USERS表空间创建,如果你提示的错误是其他表空间,这里也要换成对应的表空间; 3.详细分析: a. 表空间限额和表空间不够是两回事,所以通过增加表空间不直接解决问题; b. 我在开发环境下,所以直接将限制去掉了;如果你要设置实际的大小,那你可以设置需要的大小如下: alter user hetaoblog quota 200M on USERS; c. 要查看实际对应的用户的表空间限制,就运行下面这句SQL查询所在表空间上对应的MAX_BYTES,如果是-1就表示没有限制 select * from user_ts_quotas; select * from dba_ts_quotas d. 如果要对所有表空间设取消的限制的话,可以运行下面这句SQL grant unlimited tablespace to hetaoblog; 让hetaoblog在所有的表空间上都没有限制; e. 如果要收回限制的话,可以运行下面两句中的之一 SQL> alter user hetaoblog quota 0 on USERS; 用户已更改。 或 SQL> revoke unlimited tablespace from hetaoblog; 撤销成功。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值