2017-10-12 1 views
0

J'ai cette donnée sous le champ CLOB dans DB2. Je convertir les données à char en utilisant fonte:Sélectionner sur CLOB XML DB2

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

Voici comment le XML résultat sort de ce qui précède:

<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> 

Et voilà comment j'attends ma sortie

|TreeNo | TreeID | ErrorCode | ErrorDescription 
|ABC | 123456 | INVALID_TREE | Tree doesn’t exist 
|ABC | 1234567 | INVALID_TREE | Tree doesn’t exist 

Comment puis-je y parvenir?

+0

Quelle est la question ...? –

Répondre

2

Vous devez utiliser le XMLTABLE function qui permet de mapper des données XML vers une table. Vous pouvez transmettre des données de type XML et cela fonctionne si vous analysez directement le CLOB en XML. Le SELECT ressemblerait à ceci (vous avez l'idée):

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