Oracle Function检查特定的电子邮件域名

问题描述

我想在Oracle中编写一个函数来检查特定的电子邮件域。就像我需要找到gmail 对于其他任何电子邮件域,都应返回无效

如果我通过第一个,则应返回有效;如果我通过第二个,则应返回无效。

解决方法

就这么简单:

create or replace function f_validate_domain(i_email_id in varchar2,i_domain_name in varchar2 default 'gmail.com')
return varchar2
is
begin
    return case when instr(i_email_id,'@'||i_domain_name) > 1 then 'Valid' else 'Not Valid' end;
end;


To test:

begin
    dbms_output.put_line(f_validate_domain('[email protected]'));
    dbms_output.put_line(f_validate_domain('[email protected]','gmail.com'));
    dbms_output.put_line(f_validate_domain('[email protected]','gmail.com'));
end;

输出:

enter image description here

,

您可以根据需要使用以下正则表达式模式。以下代码仅用于演示目的。

find **/FOO/**/* -type f -name '*.tif' ! -name '*v.tif'