【发布时间】:2020-02-20 22:23:24
【问题描述】:
我有一个包含 XMLType 列的 SQL 表。我需要遍历每一行并从列中提取值。
XML 包含多个相同的子级,如下所示:
<parent>
<child>Test</child>
<child>Test1</child>
<child>Test2</child>
</parent>
我的目标是获取每个孩子的值并附加到一个字符串。但是,我在提取值时遇到问题。
我目前的解决方案:
DECLARE
sample VARCHAR(2000);
BEGIN
FOR row IN (SELECT xml_column FROM table)
LOOP
FOR child in (SELECT EXTRACT('/parent/child') ...
LOOP
....
END LOOP;
END LOOP;
END;
我的第一个问题是我似乎无法获得个人价值观。我已经使用了 EXTRACT 和 EXTRACTVALUE,但我得到的最好的是'TEST1TEST2 ...'。
其次,如果我尝试使用row.XML_COLUMN,它会抱怨它不存在。
【问题讨论】: