通过 updatexml 更新 CLOB XML
Updating CLOB XML through updatexml
我的 table 中有一个标签具有 clobe xml 数据,如下所示:
我需要将此值更新为 400。我按如下方式进行操作。但它没有更新。请帮忙。
更新 XYZ
SET request_xml = UPDATEXML(xmltype(request_xml),
'Parameters/Parameter[@Name="ABC"]/@Value', 400,'xmlns:n0="http://www.iQWE.com/LKJ"').getClobVal()
transaction_id = '2017051907471800000000187725';
您的 XPath 没有多大意义。您正在寻找一个名为 Parameter
的节点,该节点具有一个名为 Name
的属性,其中该属性值为 'MaxLatenessAllowed'
。您的 XMl 文档中没有类似内容。
您可以提供要更改的节点的完整路径,包括命名空间信息:
UPDATE dfxha_catchup_queue
SET request_xml = UPDATEXML(xmltype(request_xml),
'/n0:CreateOrder/n0:SalesOrders/n0:SalesOrder/n0:SalesOrderLines/n0:SalesOrderLine/n0:MaxLatenessAllowed/@Value',
400,
'xmlns:n0="http://www.i2.com/DFX"').getClobVal()
where transaction_id = '2017051907471800000000187725';
或者缩短您可以在任何地方查找该节点名称,如果这在您的模式中是安全的:
UPDATE dfxha_catchup_queue
SET request_xml = UPDATEXML(xmltype(request_xml),
'//n0:MaxLatenessAllowed/@Value',
400,
'xmlns:n0="http://www.i2.com/DFX"').getClobVal()
where transaction_id = '2017051907471800000000187725';
updateXML()
函数 is deprecated,因此您可能想研究实现此目的的其他方法。
我的 table 中有一个标签具有 clobe xml 数据,如下所示:
我需要将此值更新为 400。我按如下方式进行操作。但它没有更新。请帮忙。
更新 XYZ SET request_xml = UPDATEXML(xmltype(request_xml), 'Parameters/Parameter[@Name="ABC"]/@Value', 400,'xmlns:n0="http://www.iQWE.com/LKJ"').getClobVal() transaction_id = '2017051907471800000000187725';
您的 XPath 没有多大意义。您正在寻找一个名为 Parameter
的节点,该节点具有一个名为 Name
的属性,其中该属性值为 'MaxLatenessAllowed'
。您的 XMl 文档中没有类似内容。
您可以提供要更改的节点的完整路径,包括命名空间信息:
UPDATE dfxha_catchup_queue
SET request_xml = UPDATEXML(xmltype(request_xml),
'/n0:CreateOrder/n0:SalesOrders/n0:SalesOrder/n0:SalesOrderLines/n0:SalesOrderLine/n0:MaxLatenessAllowed/@Value',
400,
'xmlns:n0="http://www.i2.com/DFX"').getClobVal()
where transaction_id = '2017051907471800000000187725';
或者缩短您可以在任何地方查找该节点名称,如果这在您的模式中是安全的:
UPDATE dfxha_catchup_queue
SET request_xml = UPDATEXML(xmltype(request_xml),
'//n0:MaxLatenessAllowed/@Value',
400,
'xmlns:n0="http://www.i2.com/DFX"').getClobVal()
where transaction_id = '2017051907471800000000187725';
updateXML()
函数 is deprecated,因此您可能想研究实现此目的的其他方法。