2016-09-06 54 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;