现遇到一问题,要求将一clob字段里的银行卡的空格去掉,并且如果有全角则转换成半角,to_single_byte不能对大于4000字符的字符串处理,而用regexp_replace(AAA,'(xxx)','\1')又不能对\1直接处理,现在只能用replace写10遍替换,而这样写又太麻烦,请问有什么办法直接一步处理呢?不要写函数
oracle有一个trim函数可以把空格去掉,至于to_single_byte不能对大于4000字符的字符串处理这个问题可不可以把源自段用substr函数切分到几个合适长度的字段(临时表里或可以的话直接在原表添加新字段),然后再用to_single_byte,处理好后update回去。数据量大的话不建议用update操作,会产生大量的行迁移情况,最好是直接抽数据往一个新表里更新。