从应用程序执行脚本时出现以下错误:
ORA-30032: the suspended (resumable) statement has timed out_ORA-01536: space quota exceeded for tablespace 'USERS'_
最佳答案
首先:
您遇到的错误 (ORA-01536
) 提示您登录的用户的权限。
该用户正在尝试将数据添加到属于名为 USERS
的表空间的表中。
表空间是一个逻辑容器,它隐藏了表持久化背后的物理存储,每个表在创建时被显式或隐式分配一个表空间(如果没有指定,表空间被分配给用户关联的“默认”表空间用户已创建,通常是 USERS
表空间)。
如果您希望您的用户对其放入 USERS
的数据量没有限制,请运行:
ALTER USER <your user> quota unlimited on USERS;
或者如果您想将配额限制为 10 MB:
alter user <your user> quota 10M on USERS;
参见 Managing Users and Resources了解更多详情。
其次:
如果您只是在玩弄您的数据库并且不希望有任何空间限制(例如,您没有使用生产数据库),请运行以下任一命令:
grant resource to <your user> ;
--or
grant unlimited tablespace to <your user> ;
请注意,上述语句必须由其他用户执行,并且其他用户必须有权将相关权限授予其他人(例如登录as SYSDBA
)。如果您从您的用户那里执行它们,或者用户没有适当的授权,这些语句将失败。
顺便说一句:
ORA-30032
只是对您的真实错误的一种包装,只是表示数据库已暂停您的 session ,等待您修复表空间分配问题,直到超时为止放弃(参见 Resumable timeout explained)。
关于Oracle 数据库错误 "space quota exceeded for tablespace ' USERS'_”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40903152/