table字段是XMLTYPE类型时的修改

今天在处理问题时,发现一个table的一个字段里面数据不对,想要通过update直接修改,谁知提交时,报错ORA-31011:XML语法分析失败


原来这个字段是 XMLTYPE类型的,百度后,说需要特殊处理,我用了下面的SQL,还是报错字符串缓冲区太小


update table1 a set a.class=replace(bo,'ABC','ABCD') where a.class= '1234567' ;


按照下面的语句执行倒是没有报错,但是格式乱掉了

update table1 t set t.class= updatexml(t.prp_xml, 'ABC','ABCD') where t.class= ‘1234567’;


最后,我就想了一个特殊的办法,虽然不是很常规,但是如果只是想要修改单条数据,想要改内容比较多,又较难替换的话,就可以用以下临时办法:

先见一张临时表,比如叫table_temp,只键一个字段,这个字段(比如叫class_temp)用CLOB类型(CLOB的可以直接修改),把table1中的class字段全部copy出来,然后用文本编辑器,比如UE修改完后,copy到class_temp字段中,保存后,把table_temp.class_temp update到table1.class里面


 update table1 a set a.class=(select  xmltype(class_temp) from table_temp b ) where a.class= '1234567' ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值