У меня есть таблица SECTION_ANSWER в базе данных Oracle 11g, в которой есть столбец XMLType. XML довольно прост, он следует структуре:
<section sectionID="1">
<question questionID="1" questionType="text">
<answer>Green</answer>
</question>
<question questionID="2" questionType="multiselect">
<answer>101</answer>
<answer>102</answer>
<answer>105</answer>
<answer>107</answer>
</question>
</section>
Мне нужно обновить ответ «105» до «205». Я делал что-то подобное в прошлом, используя UPDATEXML. Например, если бы мне нужно было обновить идентификатор вопроса 1, у которого есть только один ответ, я мог бы сделать что-то вроде:
UPDATE SECTION_ANSWER sa
SET sa.section_answerxml = updatexml(sa.section_answerxml, '//section[@sectionID="1"]/question[@questionID="1"]/answer/text()', 'BLUE')
Однако на этот раз у меня возникли проблемы с обновлением questionID 2, поскольку существует несколько узлов ответов, и я не знаю, в каком узле будет контент, который необходимо обновить. Может ли кто-нибудь пролить свет на то, как выполнить такое обновление ?