【发布时间】:2016-02-25 15:31:50
【问题描述】:
我有一个 XMLTYPE 内容,我想删除该 XML 中的多个标签。
我正在使用 XMLQUERY 删除 recordType 中的标签 Header,如下所示:
SELECT XMLQUERY (
'copy $i := $p modify
delete nodes $i//Header/recordType
return $i'
PASSING pv_header AS "p" RETURNING CONTENT)
INTO result
FROM DUAL;
如果我想删除多个标签而不使用 XMLQUERY 创建新的 SELECT 语句怎么办。我不能这样做:
SELECT XMLQUERY (
'copy $i := $p modify
delete nodes $i//Header/recordType
delete nodes $i//Header/interfaceType
return $i'
PASSING pv_header AS "p" RETURNING CONTENT)
INTO result
FROM DUAL;
注意:我可以使用 deleteXML,但它在 Oracle 12c 中被声明为已弃用的函数。
提前致谢! 菲利普
编辑:我将其用作参考:https://docs.oracle.com/database/121/ADXDB/xdb04cre.htm#ADXDB6086
【问题讨论】: