res1 表的大字段res_text,大字段里面是一段xml文件,都是以“</content></templet>”结尾的,现在我需要根据一定的判断条件,更新这个大字段,加入一个标签,使得以“<isSH>1</isSH></content></templet>”这样结尾。
用了lpad,结果没有成功。
------解决思路----------------------
lob字段一般要用dbms_lob操作
使用普通的系统函数,会将其先转成varchar2类型,此时超过4000个字节的时候就会报错
如果不会超过长度
select rsc.res_text,
replace(rsc.res_text,'</content></templet>','<isSH>1</isSH></content></templet>')
from res1 rsc
就可以了
------解决思路----------------------
dbms_lob是一个包,里面有一些用于操作lob对象的函数和存储过程
具体用法可以搜索一下
------解决思路----------------------
使用 dbms_lob 替换 , 单独的 replace 不能操作大字段
------解决思路----------------------
LZ 你在 dbms_lob 包中找一下
FRAGMENT_REPLACE
和
INSTR
两个函数配合着使用,能完成你的要求,可能会有些麻烦。