oracle怎么修改Blob类型数据,批量更新数据做字符替换
常规替换
函数解析
Utl_Raw.CAST_TO_RAW (blob字段) : 将blob字段转为字符串
REPLACE(string, str, tgt) : 替换函数, string中的str 替换成tgt
Utl_Raw.CAST_TO_RAW(string) : 将字符串转为raw类型
Blob大数据替换
用上述方法BLOB数据过多时会出现以下报错:
ORA-22835: 缓冲区对于 CLOB 到 CHAR 转换或 BLOB 到 RAW 转换而言太小 (实际: 4786, 最大: 2000)
to_char方法将clob类型转换成varchar类型出了问题,oracle中varchar最大的长度是4000。
把clob大文本类型直接转换成varcahr类型时,如果clob的长度小于4000,没有超过varchar的最大值,不会出问题,一旦超过4000就会报错
sql解决方法
1.将BLOB转换成CLOB
2.从clob转成varchar2
3.编写sql
多数据更新场景
用上述方法一次仅仅可更新一条数据,如果需要批量更新数据,则编写存储过程: