我正在尝试从在 oracle 中存储为二进制 xml 的一些结构化 xml 中检索密钥和父密钥。我尝试过创建非结构化索引以及带有结构化组件的索引。对 XMLTABLE() 执行 SELECT 时,结构化组件工作正常,但我无法使用 XMLTable 检索父节点的值。因此,我尝试使用以下 Xquery 来检索父值,但这根本不使用索引。这种查询方式是否支持使用 XmlIndexes?我在文档中找不到任何说这两种方式的东西。
SELECT y.*
FROM xml_data x, XMLTABLE(xmlnamespaces( DEFAULT 'namespace'),
'for $i in /foo/bar
return element r {
$i/someKey
,element parentKey { $i/../someKey }
}'
PASSING x.import_xml
COLUMNS
someKey VARCHAR2(100) PATH 'someKey'
,parentKey VARCHAR2(100) PATH 'parentKey'
) y
谢谢,汤姆