DB2 для z / OS: сравнение узлов в XQuery - PullRequest
0 голосов
/ 01 марта 2011

У нас есть представление как показано ниже

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 для z / OS приведет к ошибке ниже:

SQLCODE = -16031, SQLSTATE = 10509, SQLERRMC = сравнение узлов

Таким образом, сравнение узлов не поддерживается DB2 дляг / OS.Теперь мой вопрос: как я могу написать представление другими способами, используя XQuery (или нет)?

Пожалуйста, покажите мне немного света, признателен!

1 Ответ

0 голосов
/ 08 марта 2011

Очевидно, что DB2 V10 для z / OS пока не поддерживает сравнение узлов. Так что нет простого решения этой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...