2014-09-06 2 views
0

я в состоянии успешно получить значение XML элемента, используя следующий SQLDB2 как я заменить двойные кавычки, возвращаемый элемент XML

*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 

ошибка не является нет авторизованной подпрограммы «ЗАМЕНА» типа «FUNCTION» были найдены совместимые аргументы ... SQLCODE = -440, SQLSTATE == - 42884.

ответ

0

XMLQUERY returnes типа XML, попробуйте приведение его в VARCHAR перед нанесением ЗАМЕНИТЬ на него:

REPLACE(XMLCAST(XMLQUERY('$item/*:ItemSpec/*:Addition ...) AS VARCHAR(...)), '"','QUOT') AS .. 
+0

спасибо Леннарт. Передача его Вархару для меня работала. – Mohan