Извлечение XML в DB2 - PullRequest
       9

Извлечение XML в DB2

0 голосов
/ 30 октября 2019

Ниже есть поля кадрирования xml,

**Xml_value=
<docs><doc_id>1234</doc_id>
<reci><reci_code>ss</reci_code>
</reci></docs>**


Select doc.value('doc_id[1]',varchar(8)')doc_id,    
 Reci.value('reci_code'[1],char(8)')reci_code
From xml_value.nodes('docs/doc')docs(doc)
cross apply docs.nodes('reci/reci')reci'(reci')

Output:

doc_id reci_code

1234 сс

The above mentioned query is for SQL server.
need to extract all XML fields into a separate columns as like above output statement in db2.

Как этого добиться в 2 дБ.

Вы можете помочь в этом.

1 Ответ

1 голос
/ 30 октября 2019

Попробуйте это:

/*
WITH MYTABLE AS 
(
  SELECT T.*
  FROM 
  (
    VALUES XMLPARSE
    (
    DOCUMENT '
    <docs>
      <doc_id>1234</doc_id>
      <reci>
        <reci_code>ss</reci_code>
      </reci>
    </docs>
    '
    )
  ) T(X)
)
*/
SELECT V.DOC_ID, V.RECI_CODE
FROM 
  MYTABLE T
, XMLTABLE
(
'$D/docs/reci' PASSING T.X AS "D"
COLUMNS
  DOC_ID    INT         PATH '../doc_id'
, RECI_CODE VARCHAR(10) PATH 'reci_code'
) V;


|DOC_ID    |RECI_CODE |
|----------|----------|
|1234      |ss        |
...