有的節點是<emali/> 這樣的,所以直接
update table1 e set e.xxx_xml=updatexml(e.xxx_xml,'/data/contact/email/text()', 'value' ) where 1=1;
是不能更新的
update table1 e set e.xxx_xml=updatexml(e.xxx_xml,'/data/contact/email', '<email>'|| 'value' || '<email/>' ) where 1=1;
這樣就能更新了
把xml數據讀出到內存裡,用msdom對象去解析
用XPath比較簡單點.也可以用xmldom.
xmltype('<?xml version="1.0" encoding="GBK"?>
<SERVICE>
<IDA_SVR_USERBILL>
<CALL_METHOD>queryProcessStepList</CALL_METHOD>
</IDA_SVR_USERBILL>
</SERVICE>').extract('//CALL_METHOD/child::text()').getstringval()
測試:
SELECT xmltype('<?xml version="1.0" encoding="GBK"?>
<SERVICE>
<IDA_SVR_USERBILL>
<CALL_METHOD>queryProcessStepList</CALL_METHOD>
</IDA_SVR_USERBILL>
</SERVICE>').extract('//CALL_METHOD/child::text()').getstringval()
FROM dual;
如果要xmldom
你可以參考我這個報表的寫法:
www.skyz.cn/?p=364