想法1: 寫function檢查ASCII code
想法2: 用replace取代字串中正常字元, 判斷是否還有非正常字元殘留
想法3: 用translate取代字串中正常字元, 判斷是否還有非正常字元殘留
這都有不夠單純精簡的問題.
最後是以regular expression function來作:
select nvl(length(regexp_replace(x_email_address,'[a-zA-Z0-9@,.]','')),0)
from dual當長度不為0時, 就是有異常字元了.
允許逗號是因為資料中有以逗號分隔多個email address, 如果只會放單一email, 把逗號排除、不作為取代項目即可. 若有其他字元(例如破折號 - 或底線 _ )要視為正常, 就再加進列表中.
完成~
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。