暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

故障处理|Oracle 如何解决 ORA-01950:表空间没有权限

原创 小小亮 2022-10-27
11398

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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论