Здравствуйте.
Есть таблица index_xml, в которой в поле xmltype хранится xml следующего вида:
<DATA>
<FIRST_NAME>fn55</FIRST_NAME>
<LAST_NAME>ln55</LAST_NAME>
<STREET>street55</STREET>
...
</DATA>
Хочется ускорить выборку из этой таблицы, создав индекс по выбираемым значением. В случае XML со статическим набором тегов можно было создать индекс по каждому из тегов, типа extractvalue(context,'DATA/TAG_NAME'). Но XML может изменяться. Каким образом можно универсально проиндексировать хранимые значения?
Код таблицы:
create table index_xml (id number, context xmltype);
insert into index_xml (id, context1)
select level, xmltype('<DATA><FIRST_NAME>fn'||level||'</FIRST_NAME><LAST_NAME>ln'||level||'</LAST_NAME><STREET>street'||level||'</STREET></DATA>')
from dual
connect by level < 10000;