文档解释
ORA-64137: Cannot drop an XMLIndex whose internal table has been indexed using Oracle Text.
Cause: An attempt was made to drop an XMLIndex whose internal table has been indexed using Oracle Text.
Action: Drop the Oracle Text index on the XMLIndex internal table.
ORACLE ORA-64137错误,它被用来指示无法删除任何在Oracle Text中进行索引的XMLIndex。因为这种情况可能会破坏创建索引的数据库和XMLIndex,ORACLE不允许错误更改。
ORACLE ORA-64137错误发生时,显示以下信息:
Error Code: ORA-64137
Error Message: Cannot drop an XMLIndex whose internal table has been indexed using Oracle Text.
该错误通常发生在尝试调用DROP INDEX命令以删除XMLIndex时。要删除,必须先确保内部表没有被Oracle Text索引。因此,该错误可以有效地防止Oracle数据库中出现可能导致错误的索引关系。
若要解决此错误,首先需要DROP TEXT INDEX,以确保内部表没有被Oracle Text索引,然后用DROP INDEX来删除XMLIndex。
示例:
假设表OPERATIONS_TABLE中有一个XMLIndex,MRX_OPERATIONS_INDEX:
CREATE XMLIndex MRX_OPERATIONS_INDEX ON OPERATIONS_TABLE (XMLDATA) INDEXTYPE IS XDB.XMLIndex
在尝试以下操作中使用DROP INDEX以删除MRX_OPERATIONS_INDEX时:
DROP INDEX MRX_OPERATIONS_INDEX
将导致ORACLE错误信息:
Error Code: ORA-64137 Cannot drop an XMLIndex whose internal table has been indexed using Oracle Text.
要正确删除该索引,首先要执行以下drop XML text index命令:
DROP XMLText Index MRX_OPERATIONS_INDEX
最后,用DROP INDEX删除XMLIndex:
DROP INDEX MRX_OPERATIONS_INDEX
如此,ORACLE ORA-64137错误就可以得到解决。