SYS用户对象不支持延迟段

今天测试的时候发现了这个问题。

 

 

11.2环境中尝试建立一个延迟段属性的表碰到了ORA-14223错误:

SQL> SELECT * FROM V$VERSION;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for 32-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production

SQL> CREATE TABLE T_DETER_SEG (ID NUMBER)
2 SEGMENT CREATION DEFERRED;
CREATE TABLE T_DETER_SEG (ID NUMBER)
*
1 行出现错误:
ORA-14223:
此表不支持延迟创建段

由于延迟段属性是11.2才推出的新功能,以为是语法上有误,或者是Oracle存在一些限制,于是仔细查询了Oracle的官方文档,结果并没有看到任何和当前问题有关的限制条件。

以前测试延迟段的时候似乎并未碰到问题,难道和数据库的版本有关,而上次测试的时候也是11.2.0.1版本,只不过操作系统是Linux,难道这么一个简单的功能也和操作系统相关。

又检查了一下当前的环境,终于发现了问题的原因,当前用户是SYS

SQL> SHOW USER
USER
"SYS"
SQL> CREATE TABLE T_DETER_SEG (ID NUMBER)
2 SEGMENT CREATION DEFERRED
3 TABLESPACE USERS;
CREATE TABLE T_DETER_SEG (ID NUMBER)
*
1 行出现错误
:
ORA-14223:
此表不支持延迟创建段

对于SYS来说,不支持任何特性都是正常的,这一点到没有什么奇怪的,不过想要搞清楚,是SYS下的对象不支持,还是SYSTEM表空间中的对象不支持段延迟。

从目前的测试看,即使SYS用户将表创建到其他表空间,仍然会导致这个错误。

SQL> CONN TEST/TEST@TEST112
已连接。
SQL> CREATE TABLE T_DETER_SEG (ID NUMBER)
2 SEGMENT CREATION DEFERRED
3 TABLESPACE SYSTEM;

表已创建。

现在可以确定,SYS用户下对象是不支持延迟段功能的。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-696010/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/4227/viewspace-696010/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值