ORA-64101: Cannot alter both a structured and an unstructured component of an XMLIndex in the same ALTER INDEX statement.
Cause: An attempt was made to alter the unstructured component and structured component of an XMLIndex at the same time.
Action: Use separate ALTER INDEX statements to change an unstructured component and a structured component of an XMLIndex.
ORA-64101 错误
ORA-64101错误通常发生在在更改索引的时候,即使用ALTER INDEX语句来更改索引时,该错误出现意味着无法同时更改XML索引的结构以及非结构部分。
该错误的出现表明,在用ALTER INDEX语句更改XML索引的时候,不可以同时操作其中结构部分和非结构部分,如果同时更改则会出现ORA-64101。
常见案例
ORA-64101 错误一般出现在尝试同时更改一个XMLIndex索引中结构部分和非结构部分时,比如当用户试图使用ALTER INDEX语句同时修改XMLIndex的结构部分和非结构部分时,就可能会出现ORA-64101错误,例如:
SQL> ALTER INDEX myxmlindex MONITORING USAGE ADD PROPERTY SET myschema.mytable;
ERROR at line 1:
ORA-64101: cannot alter both a structured and an unstructured component of an XMLIndex in the same ALTER INDEX statement
解决方法
在此种情况下,可以将ALTER INDEX语句拆分为两个语句,一个对XMLIndex的结构部分进行处理,另一个引用XMLIndex的非结构部分进行处理,例如:
SQL> ALTER INDEX myxmlindex REBUILD;
SQL> ALTER INDEX myxmlindex MONITORING USAGE ADD PROPERTY SET myschema.mytable;
此外,为了避免ORA-64101错误的出现,用户可以使用ALTER INDEX一次性更新更改索引的两个特性,只要特性的更改不会影响XMLIndex的结构组成,即可避免出错。