[英]PL/SQL Remove unwanted characters from a phone number
我環顧四周,似乎無法找到這個問題的直接答案。 我對如何做到這一點感到困惑。 我應該使用正則表達式還是有更好的方法來做到這一點?
我有一個程序可以根據電話號碼的開頭和長度來格式化電話號碼。 我希望能夠在格式化之前先清理電話號碼。 所以我的老師丟了一個看起來像這樣的電話號碼
07A3345:6543
我想在格式化之前從電話號碼中刪除A和&。
謝謝
您可以使用translate()
進行此操作。 一種方法是明確指出要刪除的內容:
select translate(phone, '0123456789', '0123456789A&')
另一種方法是變得更聰明,只保留數字:
select translate(phone, '0123456789' || translate(phone, 'a0123456789', 'a'), '0123456789')
這將刪除所有非數字字符。
如果您只需要刪除非數字字符,則可以嘗試以下操作:
TRANSLATE(phone,'0123456789'||phone,'0123456789')
這將字符映射0
至9
把自己和其他任何字符出現在電話號碼什么 -實際上將其廢棄。
給出您的示例:
DECLARE
phone VARCHAR(20) := '07A3345&6543';
BEGIN
DBMS_OUTPUT.PUT_LINE(TRANSLATE(phone,'0123456789'||phone,'0123456789'));
END
將顯示:
0733456543
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.