DB2 for z / OS:XQuery中的节点比较

时间:2011-03-01 10:06:13

标签: db2

我们的观点如下

CREATE VIEW  CORE_V_LOG_OUTPUT AS 
select SERIAL, xtab.OUTPUT_ROW, xtab.OUTPUT_NAME, xtab.OUTPUT_VALUE 
FROM bizzcore_log, XMLTable('declare namespace s="http://xml.snow.com/bizz/logging"; 
for $i in $x/s:Info/s:Output/s:rowValues/s:value 
return document { <row> <num>{count($i/../../s:rowValues[. << $i/../.]) +1} </num> 
<col>{$i/../../s:columnNames/s:name[count($i/../*[. << $i]) +1]}</col> 
{if (($i/.)[1]/@value) then <val>{ string(($i/.)[1]/@value)} </val> 
else <dummy></dummy>} </row> }' 
PASSING Info as "x" COLUMNS OUTPUT_NAME VARCHAR(256) PATH '/row/col', 
OUTPUT_VALUE VARCHAR(256) PATH '/row/val',OUTPUT_ROW INT PATH '/row/num') xtab;

我们可以成功地在DB2 LUW和DB2 / 400上创建视图。但是在DB2 V10 for z / OS上创建视图将得到以下错误:

SQLCODE = -16031,SQLSTATE = 10509,SQLERRMC =节点比较

因此DB2 for z / OS不支持节点比较。现在我的问题是如何使用XQuery(或不使用)以其他方式编写视图?

请告诉我一些关于此的事,谢谢!

1 个答案:

答案 0 :(得分:0)

目前,DB2 V10 for z / OS目前不支持节点比较。所以这个问题没有简单的解决方案。