У нас есть представление как показано ниже
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 (или нет)?
Пожалуйста, покажите мне немного света, признателен!