Как получить текстовое значение, используя запрос Xpath для определенных данных

У меня есть xml как то так

'<engnDoc>
   <rbl cd="100" bd ="xyz" reliable="Y">
       <time secs="600">
          <outage>N</outage>
          <stable>Y</stable>
          <other>Perfect</other>
       </time>
  </rbl>
</engnDoc>'

Как получить значение стабильного? Я пробовал что-то подобное

with data(person_id,stable_cd) as
(select person_id, unnest(xpath('/engnDoc/rbl[@reliable="Y"]/time[@secs="600"]/stable/text()',(select xmlparse(document somexmlfieldintable))))::text as stable_cd
from sometable
)
select person_id,stable_cd
from data
where stable_cd = 'Y'

Но я получаю ошибку как

ОШИБКА: неверный документ XML
ДЕТАЛИ: строка 1: ожидается начало вкладки, "<" не найдено
".......
^

По сути, я пытаюсь получить запись, которая имеет значение 600 секунд и имеет стабильный индикатор как Y. (XML состоит из множества записей с secs=400, secs=500, но я хочу secs=600 только.

0 ответов

Другие вопросы по тегам