2017-10-12 110 views
0

我在DB2中将此数据作为CLOB字段。在CLOB XML上选择DB2 DB2

SELECT CAST(CLOBColumn as VARCHAR(32000)) 
FROM Schema.MyTable; 

下面是结果XML如何从上面出来:我使用投将数据转换为char

<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

什么问题...? –

回答

2

您需要使用允许将XML数据映射到表的XMLTABLE function。您可以传入XML类型的数据,如果您直接将CLOB解析为XML,则它可以工作。选择将如下所示(你的想法):

SELECT x.* 
FROM schema.mytable, XMLTABLE(
    '$CLOBColumn/TreeList' 
    COLUMNS 
    TreeNo VARCHAR(10) PATH '@TreeNo', 
    TreeID INT PATH 'Tree[@TreeID]', 
    ... 
) AS x 
;