2016-09-06 29 views
1

我在Oracle 11g的表,我需要删除的号码下面的所有实例有一个电话号码列的表列:更新通过删除字符串中的字符

(0) 

这样的例子是:+44 (0)1223 123456 - >+44 1223 123456

如何编写更新语句以在括号中查找零并将其从每个表格行中删除? 如果这有帮助,(0)总是在所有行上处于相同位置。

回答

0

尝试(对于Oracle)

REPLACE(telno,'(0)') as Telno 
1

使用REPLACE()功能:

update tablename 
set phonecol = replace(phonecol, '(0)') 

如果表是很大的,只有一些行会被更新,添加以下,以保持交易大小下来:

where phonecol like '%(0)%' 
+0

你并不需要使用“”,只是忽略了表达 – JohnHC

+0

@JohnHC的一部分,谢谢你的提示。 (我不太了解Oracle。) – jarlh

0
update tablename 
    set phonecol = regexp_replace(phonecol ,'[(0)]') 
where phonecol like '%(0)%' ; 

对于例如,你可以尝试使用以下选择:

select '+44 (0)1223 123456',regexp_replace('+44 (0)1223 123456','[(0)]') 
from dual;