如果select语句成功执行,则返回1,否则为0 我不希望将该返回值存储在变量中,以便我可以在更进一步的sql中使用该变量
set serveroutput on
declare
a number;
begin
a:=select instr('&email','@') as email_in from dual;
if(a)
then
dbms_output.put_line('Valid Email');
else
dbms_output.put_line('Please Enter a valid Email');
end if;
end;
这里我正在尝试的是,如果用户输入的电子邮件包含@然后选择查询成功执行并返回@在该字符串中的位置,否则它将给出0 但它给了我一个错误,任何人都可以帮助我... 谢谢你提前..
答案 0 :(得分:1)
我想你想表达的是:
select (case when instr('&email', '@') > 0 then 1 else 0 end)
into a
from dual;
if (a = 1) then
dbms_output.put_line('Valid Email');
else
dbms_output.put_line('Please Enter a valid Email');
end if;
为此目的,您不需要select
,但我将其留在了.I
或者,只需:
if ('&email' like '%@%') then
dbms_output.put_line('Valid Email');
else
dbms_output.put_line('Please Enter a valid Email');
end if;
注意:电子邮件的有效性检查应该比签名更多。
答案 1 :(得分:0)
只需编写功能即可验证电子邮件 如果没有@,那么它将返回0,如果它在那里则返回@。
create or replace function check_email(ip_emailid varchar2)
return number
is
begin
return instr(ip_emailid,'@');
end;