ITPub博客

首页 > 数据库 > Oracle > oracle对字符类型的列上在线重建index的限制!

oracle对字符类型的列上在线重建index的限制!

原创 Oracle 作者:warehouse 时间:2008-12-17 13:51:20 0 删除 编辑

在线重建一个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博客 ” ,链接:https://blog.itpub.net/19602/viewspace-1014824/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-12-07

  • 博文量
    717
  • 访问量
    5366330