摘自:http://zhidao.baidu.com/link?url=Gruq2bRMmpUu8xZHt20oOl-Ky-cUKhi4YeKigwfY8mchlnau4Cw4LKj01id5rm-GdYEmJHKDM2YrMd5fHbLtQs303Cs6zafJM-mNsp-kI-u
使用replace函数:可以切割字符串
测试语句:
select replace('你好变','变','站') from dual;
正式语句:
update test set name = replace(name,'变','站');
测试语句:
select
replace
(substr(
'XX变#XX变'
,1,instr(
'XX变#XX变'
,
'变'
)),
'变'
,
'站'
)||substr(
'XX变#XX变'
,instr(
'XX变#XX变'
,
'变'
)+1)
from
dual;
正式语句:
update
test
set
name
=
replace
(substr(
name
,1,instr(
name
,
'变'
)),
'变'
,
'站'
)||substr(
name
,instr(
name
,
'变'
)+1);
【说明】
以上若需要替换的文字中只有一个字,没有重复,则可以直接用第一个语句即可;
需要替换的字符串若需要进行切割则用substr()函数,其中前半截:
replace
(substr(
'XX变#XX变'
,1,instr(
'XX变#XX变'
,
'变'
)),
'变'
,
'站'
)先截取需要替换的字符串然后再替换,后半截的||则把源字符串后半截不需要替换的“正常字符”给拼接在其后,利用substr()函数的优点是只是替换截取的部分,后面还有相同字符则不会被替换;另替换之前最好先用测试语句检测结果正常之后再做替换;
作此说明!