在Oracle中创建索引时出现的问题
我正在尝试在Oracle中的QueueData表和XYZ字段(XMLTYPE列文本的节点之一)上创建索引 我的问题是:在Oracle中创建索引时出现的问题,oracle,Oracle,我正在尝试在Oracle中的QueueData表和XYZ字段(XMLTYPE列文本的节点之一)上创建索引 我的问题是: CREATE INDEX IX_QUEUE_XYZ ON QUEUEDATA (extractValue(TEXT, '//XYZ')) TABLESPACE "PSAPD" 但它给了我以下错误: ORA-19025: EXTRACTVALUE returns value of only one node 我不明白这里怎么了。有人能解释一下吗?extractValue的第
CREATE INDEX IX_QUEUE_XYZ ON QUEUEDATA (extractValue(TEXT, '//XYZ')) TABLESPACE "PSAPD"
但它给了我以下错误:
ORA-19025: EXTRACTVALUE returns value of only one node
我不明白这里怎么了。有人能解释一下吗?extractValue的第二个参数指向多个节点,它应该只返回一个节点,因此如果您有多个标记“XYZ”,那么如果您使用XYZ[1],它将返回所有标记,只返回第一个标记 见:
是的,有多个XYZ。那么,我如何才能在所有这些索引上创建索引呢?与其使用基于函数的索引,不如使用xmlindex(特别是在v11中):在QUEUEDATA(文本)INDEXTYPE为XDB.xmlindex上创建索引IX_QUEUE_XYZ;当我尝试以下查询时:在QUEUEDATA(文本)上创建索引IX_QUEUE_XYZ INDEXTYPE为XDB.XMLIndex,它说:ORA-29833:indextype不存在检查DBA_indextype中是否存在,列所有者将告诉您使用哪个用户代替XDB,如果根本不存在,您可能需要检查安装。