La Web del Programador: Comunidad de Programadores
 
    Pregunta:  27724 - TRIGGERS EN ORACLE
Autor:  Facundo Pablo
Me gustarìa que alguien mi diga en que esta fallando este proceso.
La idea es saber cuando se carga una direccion de mail. Que evalue que siempre lleve @ en alguna parte de la cadena de caracteres.
Muchas gracias

--------------------------------------
create or replace trigger tr_clientes_email
before
insert or update of e_mail on cliente

declare

valor number;

begin

valor := 1;

if valor := 50 then
letra := substr(e_mail,valor,1);
if letra := '@' then
exit
else
valor := valor+1;
end if;
else
raise_application_error(-20601,'No contiene un @ en la direccion');
end if;
end;

  Respuesta:  Vladimir Gutierrez
Quizas no te arroja error por que el RAISE_APLICATION_ERROR solo hace efecto cuando este está en una EXCEPTION.
Crea tu propio RAISE y coloca este en la condicion para que este se vaya
a la EXCEPTION y desde este coloca el RAISE_APLICATION_ERROR.

  Respuesta:  Rodrigo echeverria
prueba este codigo a mi me funco

declare
pos1 number;
begin
pos1 := instr(:texto,'@');
if pos1 >= 1 then
message('tiene @');
else
message('No tiene @');
end if;
end;

chao..