我在DB2中将此数据作为CLOB
字段。我正在使用cast:
char
SELECT CAST(CLOBColumn as VARCHAR(32000))
FROM Schema.MyTable;
以下是结果XML如何从上面得出:
<TreeList TreeNo="ABC">
<Tree ErrorCode="INVALID_TREE" ErrorDescription="Tree doesn’t exist." TreeID="123456"/>
<Tree ErrorCode="INVALID_TREE" ErrorDescription="Tree doesn’t exist." TreeID="1234567"/>
</TreeList>
这就是我对输出的预期
|TreeNo | TreeID | ErrorCode | ErrorDescription
|ABC | 123456 | INVALID_TREE | Tree doesn’t exist
|ABC | 1234567 | INVALID_TREE | Tree doesn’t exist
我如何实现这一目标?
答案 0 :(得分:3)
您需要使用允许将XML数据映射到表的XMLTABLE function。您可以传入XML类型的数据,如果直接将CLOB解析为XML,它就可以工作。 SELECT看起来如下(你明白了):
SELECT x.*
FROM schema.mytable, XMLTABLE(
'$CLOBColumn/TreeList'
COLUMNS
TreeNo VARCHAR(10) PATH '@TreeNo',
TreeID INT PATH 'Tree[@TreeID]',
...
) AS x
;