DB2 XML在单个语句中选择多行

问题描述 投票:0回答:2

用我的代码,

SELECT X.DEP_ID
              FROM (SELECT XMLPARSE (DOCUMENT '<root><DEP_ID>1000000004</DEP_ID><DEP_ID>1000000005</DEP_ID></root>') AS ELEMENT_VALUE
                    FROM SYSIBM.SYSDUMMY1) AS A,
                   XMLTABLE (
                      '$d/root'
                      PASSING Element_value AS "d"
                      COLUMNS 
                      DEP_ID  VARCHAR (10)  PATH 'DEP_ID'
                                 ) AS X;

由于需要:

DEP_ID

1000000004
1000000005

如果其单个值表示正常工作,则意味着xml中只有一个DEP_ID。但是多次返回意味着它将显示错误。

如何像上面的db2中那样获得输出。

db2 db2-400
2个回答
0
投票

错误的row-xquery-expression-constant。试试这个:

SELECT X.DEP_ID
FROM 
(
SELECT XMLPARSE (DOCUMENT '<root><DEP_ID>1000000004</DEP_ID><DEP_ID>1000000005</DEP_ID></root>') AS ELEMENT_VALUE
FROM SYSIBM.SYSDUMMY1
) AS A
, XMLTABLE 
(
'$d/root/DEP_ID' PASSING Element_value AS "d"
COLUMNS 
DEP_ID  VARCHAR (10)  PATH '.'
) AS X;

0
投票
SELECT X.DEP_ID FROM ( SELECT XMLPARSE (DOCUMENT '<root><recp><DEP_ID>1000000004</DEP_ID><EMP_ID>123</EMP_ID></recp><recp><DEP_ID>1000000005</DEP_ID><EMP_ID>321</EMP_ID></recp></root>') AS ELEMENT_VALUE FROM SYSIBM.SYSDUMMY1 ) AS A , XMLTABLE ( '$d/root/recp' PASSING Element_value AS "d" COLUMNS DEP_ID VARCHAR (10) PATH 'DEP_ID',EMP_ID VARCHAR (10) PATH 'EMP_ID ' ) AS X;
© www.soinside.com 2019 - 2024. All rights reserved.