更新Oracle中的数据部分

时间:2009-11-20 01:49:43

标签: sql oracle

希望有人可以使用Oracle协助进行此数据更新。

我的情况是,我的数据/记录可能如下所示:

表名:IPDATA

带有这些记录的列名称为:info

Web代理(abc):ZZZ Gateway gen1:gen2
ZZZ Gateway gen1:gen2:Web Proxy(abc)
ZZZ Gateway gen1:gen2
Web代理(abc):ZZZ网关gen1:gen2:XYZ系统
Web代理(abc):ZZZ网关gen1:gen2:XYZ系统:POP SetUp
Web代理(abc):XYZ系统:POP设置:ZZZ网关gen1:gen2

我需要做的是找到包含字符串“ZZZ Gateway gen1:gen2”的记录 - 只是存在于记录中的记录,并将“:”替换为“,”仅限

最终结果将是:

Web代理(abc):ZZZ Gateway gen1,gen2
ZZZ Gateway gen1,gen2:Web Proxy(abc)
ZZZ Gateway gen1,gen2
Web代理(abc):ZZZ网关gen1,gen2:XYZ系统
Web代理(abc):ZZZ Gateway gen1,gen2:XYZ Systems:POP SetUp
Web代理(abc):XYZ系统:POP设置:ZZZ网关gen1,gen2

我已尝试使用substr更新并替换但无济于事。

1 个答案:

答案 0 :(得分:5)

看起来你可以用“1”替换“1:”,

update IPDATA 
set info=replace(info, '1:', '1,' )  
where info like('%ZZZ Gateway gen1:gen2%')