oracle對字元型別的列上線上重建index的限制!

warehouse發表於2008-12-17

線上重建一個index時無意中發現了這樣的問題,varchar2型別的列不能超過3201,這可能是一個內部限制。

SQL> alter index idx_t rebuild online;
alter index idx_t rebuild online
*
第 1 行出現錯誤:
ORA-00604: 遞迴 SQL 級別 1 出現錯誤
ORA-01450: 超出最大的關鍵字長度 (3215)

[@more@]

SQL> desc t
名稱 是否為空? 型別
----------------------------------------- -------- ----------------------------

ID NUMBER(38)
NAME VARCHAR2(3202)

SQL> alter index idx_t rebuild online;
alter index idx_t rebuild online
*
第 1 行出現錯誤:
ORA-00604: 遞迴 SQL 級別 1 出現錯誤
ORA-01450: 超出最大的關鍵字長度 (3215)


SQL> alter table t modify name varchar2(3201);

表已更改。

SQL> alter index idx_t rebuild online;

索引已更改。

SQL> alter table t modify name varchar2(3202);

表已更改。

SQL> alter index idx_t rebuild ;

索引已更改。

SQL> alter table t modify name varchar2(4000);

表已更改。

SQL> alter index idx_t rebuild ;

索引已更改。

SQL> alter index idx_t rebuild online;
alter index idx_t rebuild online
*
第 1 行出現錯誤:
ORA-00604: 遞迴 SQL 級別 1 出現錯誤
ORA-01450: 超出最大的關鍵字長度 (3215)


SQL>

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/19602/viewspace-1014824/,如需轉載,請註明出處,否則將追究法律責任。

相關文章