ORA-01950
尝试创建新表或向表中插入一些数据,但失败并出现 ORA-01950。
创建表
SQL> create table t0 as select * from big_table;
create table t0 as select * from big_table
*
ERROR at line 1:
ORA-01950: no privileges on tablespace 'ERPTBS'插入
SQL> create table t1 (c1 number) tablespace erptbs;
Table created.
SQL> insert into t1 values (1);
insert into t1 values (1)
*
ERROR at line 1:
ORA-01950: no privileges on tablespace 'ERPTBS'ORA-01950 意味着用户没有任何配额特权来分配表空间上的范围,即使该表可能已在该表空间中创建。
这是预期的行为,错误正确地保护表空间不为非特权用户分配空间。
解决方案
有两种方法可以解决 ORA-01950。
1. 在可用的表空间中创建表或索引
作为开发人员,您应该检查可以使用哪些表空间。
SQL> column tablespace_name format a20;
SQL> column "QUOTA(GB)" format a10;
SQL> select tablespace_name, case max_bytes when -1 then 'UNLIMITED' else to_char(max_bytes/1024/1024/1024) end "QUOTA(GB)" from user_ts_quotas;
TABLESPACE_NAME QUOTA(GB)
-------------------- ----------
EXAMPLE UNLIMITED
FINAPP UNLIMITED上面有2个表空间可供使用,您应该在任何一个可用的表空间中创建表,或者将创建的表移动到表空间中。
2. 在表空间上授予一些配额
通常,您不必指定表空间子句,因为所有新表都转到默认表空间。很可能,DBA 忘记在默认表空间上为您授予一些空间。
SQL> select default_tablespace from user_users;
DEFAULT_TABLESPACE
------------------------------
ERPTBS现在,您应该要求 DBA 为您授予表空间配额或为您更改默认表空间。
原文标题:How to Resolve ORA-01950: no privileges on tablespace
原文作者: Ed Chen
原文链接:https://logic.edchen.org/how-to-resolve-ora-01950-no-privileges-on-tablespace/
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




