SYS使用者物件不支援延遲段

yangtingkun發表於2011-05-22

今天測試的時候發現了這個問題。

 

 

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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章