在Oracle 表中某字段有20位数字 怎么只更新其中的一位数字;如下图将红圈中的8批量改为7,请问如何操作?

如题所述

update 表 set JBDM=replace(JBDM,'8','7')
where 条件追问

感谢您的回答,我只想替换第15位的数字8 ,用replace函数会影响到另一个数字8 ,有没有其他方法可以解决?谢谢!!

追答

UPDATE 表 SET JBDM=REPLACE(substr(JBDM,14,lengthb(JBDM)),'8','7') WHERE 条件;

追问

这个办法也不行,也是将所有的8都变了;我这边摸索出来一个方法: UPDATE 表 SET JBDM=SUBSTR(JBDM,1,14)||'7'||SUBDTR(JBDM,16,length(JBDM)) WHERE 条件;
这样是可以的!谢谢您的关注!

温馨提示:答案为网友推荐,仅供参考
相似回答