我在具有 XMLType 列的 Oracle 11g 数据库中有一个表 SECTION_ANSWER。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 做过类似的事情。例如,如果我要更新只有一个答案的 questionID 1,我可以执行以下操作:
UPDATE SECTION_ANSWER sa
SET sa.section_answerxml = updatexml(sa.section_answerxml, '//section[@sectionID="1"]/question[@questionID="1"]/answer/text()', 'BLUE')
但是,这次更新 questionID 2 时遇到问题,因为有多个答案节点,我不知道需要更新的内容将在哪个节点中。任何人都可以了解如何执行这种更新?