DB2, как заменить двойную кавычку, возвращаемую элементом XML

Я могу успешно получить значение элемента XML, используя следующий SQL

*SELECT XMLQUERY('$item/*:ItemSpec/*:AdditionalDescription/*:ABCDescription/text()' PASSING productval.value_xml as "item") AS H_DESCRIPTION FROM USER1.XMETA*

Это возвращает значение с двойными кавычками ("). Как заменить его другим значением в том же запросе выбора. Я пробовал что-то подобное, но это не сработало

Select REPLACE(XMLQUERY('$item/*:ItemSpec/*:AdditionalDescription/*:ABCDescription/text()' PASSING productval.value_xml as "item"),'"','QUOT') AS H_DESCRIPTION

Ошибка: не найдена авторизованная подпрограмма с именем "REPLACE" типа "FUNCTION" с совместимыми аргументами...SQLCODE=-440,SQLSTATE==-42884.

1 ответ

Решение

XMLQUERY возвращает тип XML, попробуйте привести его к типу varchar, прежде чем применять к нему REPLACE:

REPLACE(XMLCAST(XMLQUERY('$item/*:ItemSpec/*:Addition ...) AS VARCHAR(...)), '"','QUOT') AS ..
Другие вопросы по тегам