用我的代码,
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中那样获得输出。
错误的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;
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;