如何在变量中存储 select 语句 return 值

how to store a select statement return value in a variable

if select语句执行成功 returns 1 else 0 right 不是我想将该 return 值存储在一个变量中,以便我可以进一步使用该变量 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;  

这里我正在尝试的是,如果用户输入的电子邮件包含@,则 select 查询成功执行并且@在该字符串中的 return 位置,否则它将给出 0
但它给了我一个错误,任何人都可以帮助我...
提前谢谢你..

我想你想表达为:

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 用于此目的,但我将其保留。我 或者,只需执行:

if ('&email' like '%@%') then  
  dbms_output.put_line('Valid Email');  
else  
  dbms_output.put_line('Please Enter a valid Email');  
end if;  

注意:电子邮件的有效性检查应该涉及的不仅仅是 at 符号。

简单写一个函数来验证电子邮件 它将 return 0 如果没有 @ 和 @ 的位置,如果它在那里。

create or replace function check_email(ip_emailid varchar2)
  return number
is
begin
 return instr(ip_emailid,'@');
end;