我有一个项目可以输入电子邮件ID" item_email"
我需要对电子邮件ID项目进行验证" item_email"它不应该接受多个电子邮件ID。
有没有可能做到这一点,请帮我继续。
答案 0 :(得分:0)
简单验证;计算@s的数量。例如:
SQL> with test as
2 (select 'lf@gmail.com' email from dual union
3 select 'lf@gmail.com bf@gmail.com' from dual
4 )
5 select regexp_count(email, '@') cnt
6 from test;
CNT
----------
1
2
SQL>
如果此类查询返回1,则项目包含一个"电子邮件"地址。
但是,请考虑另一个验证 - 输入该项目的值是否真的像电子邮件。因为,如果某人仅输入" @",那将通过之前的验证,但它肯定不是有效的电子邮件地址。
另一方面,也许您已经执行了验证。在这种情况下,无视该异议。
[在阅读OP的评论后由LF编辑]:
在电子邮件项目上创建验证(例如,其名称为:P3_E_MAIL)。它的类型应该是" PL / SQL函数(返回错误文本)"及其代码
if regexp_count(:P3_E_MAIL, '@') > 1 or
not regexp_like(:P3_E_MAIL, '^[a-zA-Z0-9._%-]+@[a-zA-Z0-9._%-]+\.[a-zA-Z]{2,4}$')
then
return ('E-mail address is incorrect');
end if;
看看您是否对此类代码感到满意。