这个字段类型为clob,网上查了很多方法,感觉都不理想!说说我自己的思路!
先说结果:
我的由于是更新字段(插入的话可以参考使用||拼接字符串),所以我选择使用replace函数进行操作的!
由于这个字段非常的大,我在执行更新的时候都会报错:
我尝试了拼接的方式,过程很痛苦,直接放弃了!
我重新查看了我的诉求,要把T_BILL_DATA表的JSON_DATA字段值中的某些属性更新,我于是想到replace函数
-- 替换函数:REPLACE(source, search_str, replace_str)
select * from T_VOUCHER_MAIN_AREA WHERE MAIN_BILL_CODE = 'ER374962782' AND VOUCHER_NO = '9700000183';
-- 查询出对应的BILL_MAIN_ID='11ed9f7fbd4657fd940c052d8e6f8edc'
-- 把上述ID对应的JSON_DATA中的"9700000146"替换成"9700000183" (注意我这里的双引号是这个字段里面就有的)
UPDATE T_BILL_DATA SET JSON_DATA = REPLACE((SELECT JSON_DATA FROM T_BILL_DATA WHERE BILL_MAIN_ID = '11ed9f7fbd4657fd940c052d8e6f8edc') , '"9700000146"', '"9700000183"')
WHERE BILL_MAIN_ID = '11ed9f7fbd4657fd940c052d8e6f8edc'
这样就更新成功了!