У меня есть XML-файл, подобный следующему:
<GroupList>
<Group>
<Title>
<Name>Computer</Name>
<Title>
<Type>
<Name>Book</Name>
</Type>
<DataList>
<DataElement>
<Name>Comment</Name>
<Type>text</Type>
<Value>ABC</Value>
<Ordinality>1</Ordinality>
</DataElement>
<DataElement>
<Name>Location</Name>
<Type>set</Type>
<Value>123</Value>
<Ordinality>1</Ordinality>
</DataElement>
</DataList>
</Group>
</GroupList>
Я пытаюсь передать внешнюю функцию в качестве переменной в xpath, мне нужно получить значения DataElment / Name = 'Location'.
вот фрагмент запроса:
SELECT *
FROM wd,
XMLTABLE (
'GroupList/Group[Title/Name=''Computer'']'
PASSING xmltype(wd.data), externalfunction as "i"
COLUMNS
name VARCHAR2(200) PATH 'Title/Name'
,type VARCHAR2(200) PATH 'Type/Name'
,location VARCHAr2(200) PATH 'DataElementList/dataElement[$i]/Name'
,location_value VARCHAR2(200) PATH 'DataElementList/dataElement[$i]/Value'
) x
внешняя функция возвращает число, когда я запускаю запрос, я получаю эту ошибку:
ORA-19112: error raised during evaluation: XVM-01008: [XPST0008] Invalid reference
1 DataElementList/dataElement[$i]/Value
что такоеправильный способ передачи переменной i в xpath?Спасибо за вашу помощь.