Para realizar a validação de um campo de e-mail no Oracle Forms 6i teremos que criar um gatilho “WHEN-VALIDATE-ITEM” no campo que será validado. Toda vez que o usuário tentar salvar o formulário ou preencher este campo e remover o foco dele, o evento abaixo será ativado.
[code]DECLARE
BEGIN
IF :TXT_EMAIL IS NOT NULL THEN
IF ( nomedoschema.VALIDAR_EMAIL(:TXT_EMAIL) = FALSE ) THEN
// Mensagem de alerta informando que o campo não contém um e-mail válido;
raise form_trigger_failure;
END IF;
END IF;
END;[/code]
O código abaixo é um procedimento PL/SQL armazeando no banco que será executado no momento da validação (nomedoschema.VALIDAR_EMAIL):
[code]CREATE OR REPLACE FUNCTION VALIDAR_EMAIL(pstr_email IN VARCHAR2) RETURN BOOLEAN
IS
lint_emailValido NUMBER(1);
BEGIN
SELECT
1 INTO lint_emailValido
FROM
DUAL
WHERE
regexp_like(pstr_email ,’^[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(.[a-zA-Z0-9-]+)*(.[a-zA-Z]{2,4})$’);
RETURN TRUE;
EXCEPTION
WHEN no_data_found THEN RETURN FALSE;
WHEN others THEN RETURN FALSE;
END VALIDAR_EMAIL;[/code]