Oracle之XMLType类型字段的update的两种方法

不对之处,请指出,谢谢!

XMLType 用于处理 XML 数据。 它作为预定义的成员函数在它上面提取 XML 节点和片段。


先整理出工作当中遇到update XMLType类型字段的两种情况:

场景:当数据中需要update的节点明确,并且更新数据段单一
方法一:
 	update tableName set xxx_xml = updatexml(xmltype(xxx_xml),'/data/test/object/column/test','<test>111</test>').getClobVal() where condition ...;

场景:当数据中有重复性的规律需要替换,这时候我们再去找节点就很麻烦,使用sys.XMLType.createXML可以解决。
方法二:
 	update tableName set xxx_xml = sys.XMLType.createXML(REPLACE(xmltype.getclobval(xxx_xml),'Lady gaga','Lady=gaga') where condition ...;

注意:
当xxx_xml 字段字节超过4 K时,xmltype.getclobval() 方法会有效解决: ORA-19011: Character string buffer too small 的问题。

补充:
上述where condition 用 EXTRACT(xxx_xml , ‘//column[@test=“111” and xxx]’) is not null

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值