用于检查特定电子邮件域名的 Oracle 函数

Posted

技术标签:

【中文标题】用于检查特定电子邮件域名的 Oracle 函数【英文标题】:Oracle Function to check for a particular Email Domain Name 【发布时间】:2020-09-14 14:10:28 【问题描述】:

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

如果我通过第一个,它应该返回 Valid,如果我通过第二个,它应该返回 Invalid。

【问题讨论】:

请展示你的努力,到目前为止你尝试过什么来解决这个问题..? 【参考方案1】:

就这么简单:

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('axy@gmail.com'));
    dbms_output.put_line(f_validate_domain('axy@gmail.co.in', 'gmail.com'));
    dbms_output.put_line(f_validate_domain('axy@yahoo.co.in', 'gmail.com'));
end;

输出:

【讨论】:

【参考方案2】:

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

create function(email varchar2(40)) 
  return number(1)
is
  result number(1) 
begin
   if regexp_like(email, '[a-zA-Z0-9]3,@gmail.com$') then
       result := 1;
   else
       result := 0;
   end if;

   return 0;
end;

【讨论】:

以上是关于用于检查特定电子邮件域名的 Oracle 函数的主要内容,如果未能解决你的问题,请参考以下文章

有没有最简单的方法从 oracle 的电子邮件地址中只选择域名?

PHP 使用域名检查电子邮件有效性

Oauth2 使用 hd 限制具有特定域名的电子邮件不起作用

使用域名检查电子邮件有效性

oracle sql cursor 使用邮件域名更新邮件域名

用于显示电子邮件列中域名总数的 SQL