Oracle 12c创建嵌套表报错ORA-02320/ORA-01950求助
解决Oracle 12c创建嵌套表时的ORA-02320与ORA-01950错误
嘿,我来帮你搞定这个Oracle嵌套表创建的问题!你遇到的ORA-02320和ORA-01950错误,核心原因其实是当前用户没有足够的表空间权限来创建嵌套表对应的存储表。下面是具体的解决步骤:
1. 确认用户的默认表空间
首先得搞清楚你的用户ABC默认使用的是哪个表空间,执行这条SQL查询:
SELECT username, default_tablespace FROM dba_users WHERE username = 'ABC';
2. 授予用户对应表空间的配额
假设查询结果显示默认表空间是USERS,那就给用户授予该表空间的无限配额(或者根据需求指定具体大小):
ALTER USER ABC QUOTA UNLIMITED ON USERS;
如果只需要固定配额,比如100MB,可以改成:
ALTER USER ABC QUOTA 100M ON USERS;
3. (可选)显式指定嵌套表的存储表空间
如果你的嵌套表需要存到特定表空间,除了确保用户在该表空间有配额,还可以在创建语句里显式指定,避免依赖默认设置,修改后的SQL示例如下:
CREATE TABLE "ABC" ( "STATUSES" "INTLIST", "CHAIN_DETAILS" "CHAIN_CFG_LIST" ) NESTED TABLE "STATUSES" STORE AS "OP_STATUSES_NT" (TABLESPACE USERS) RETURN AS VALUE NESTED TABLE "CHAIN_DETAILS" STORE AS "op_chains" (TABLESPACE USERS) RETURN AS VALUE;
4. 重新执行创建表语句
完成权限配置后,再重新运行你的创建表SQL,应该就能成功了。
内容的提问来源于stack exchange,提问作者Suman Panigrahi
相关产品推荐
相关产品推荐

