Bom dia pessoal...
Alguém possui alguma função para validar email?
grato
Validar email
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Brother, pronta aqui, infelizmente não tenho.
Mas, caso queira montar, segue mais ou menos o caminho das pedras:
qualquer coisa, manda ai pra gente.
Mas, caso queira montar, segue mais ou menos o caminho das pedras:
-- Se retornar maior que zero, tem o Arroba
SELECT INSTR('paulotrevisolli@ig.com.br','@')
FROM dual;
-- Se retornar maior que zero, tem ao menos um ponto.
SELECT INSTR('paulotrevisolli@ig.com.br','.')
FROM dual;
-
- Rank: DBA Sênior
- Mensagens: 365
- Registrado em: Ter, 24 Mai 2005 2:24 pm
- Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP
Araraquara - SP
Segue um exemplo que valida se a rotina tem caracter inválido e se tem caracteres obrigatórios (@.), acho q ela poderia ser um pouco mais completa, ex: validar tamanho do nome, do dominio...
[]'s
SQL> DECLARE
2 FUNCTION valida_email (p_email IN VARCHAR2 DEFAULT NULL)
3 RETURN NUMBER
4 IS
5 v_arroba BOOLEAN DEFAULT FALSE;
6 v_ponto BOOLEAN DEFAULT FALSE;
7 v_chr BOOLEAN DEFAULT FALSE;
8 v_valid_chr VARCHAR2 (100)
9 := '0123456789abcdefghijklmnopqrstuvxzwykABCDEDFGHIJKLMNOPQRSTUVXZWYK-_.@';
10 BEGIN
11 IF p_email IS NOT NULL
12 THEN
13 FOR a IN 1 .. LENGTH (p_email)
14 LOOP
15 FOR b IN 1 .. LENGTH (v_valid_chr)
16 LOOP
17 IF SUBSTR (p_email, a, 1) = SUBSTR (v_valid_chr, b, 1)
18 THEN
19 v_chr := TRUE;
20 EXIT;
21 ELSE
22 v_chr := FALSE;
23 END IF;
24 END LOOP;
25
26 IF NOT v_chr
27 THEN
28 v_ponto := FALSE;
29 EXIT;
30 END IF;
31
32 IF v_arroba
33 THEN
34 IF SUBSTR (p_email, a, 1) = '.'
35 AND SUBSTR (p_email, a - 1, 1) <> '@'
36 AND a <> LENGTH (p_email)
37 THEN
38 v_ponto := TRUE;
39 END IF;
40 END IF;
41
42 IF SUBSTR (p_email, a, 1) = '@' AND a = 1
43 THEN
44 v_ponto := FALSE;
45 EXIT;
46 ELSIF SUBSTR (p_email, a, 1) = '@'
47 THEN
48 v_arroba := TRUE;
49 END IF;
50 END LOOP;
51 END IF;
52
53 IF v_ponto
54 THEN
55 RETURN 0;
56 ELSE
57 RETURN 1;
58 END IF;
59 END;
60 BEGIN
61 IF valida_email ('jose@globo.com.br') = 0
62 THEN
63 DBMS_OUTPUT.put_line (' jose@globo.com.br : ok ');
64 ELSE
65 DBMS_OUTPUT.put_line (' jose@globo.com.br : falso ');
66 END IF;
67
68 IF valida_email ('jose@globo.com') = 0
69 THEN
70 DBMS_OUTPUT.put_line (' jose@globo.com : ok ');
71 ELSE
72 DBMS_OUTPUT.put_line (' jose@globo.com : falso ');
73 END IF;
74
75 IF valida_email ('jose@globocom') = 0
76 THEN
77 DBMS_OUTPUT.put_line (' jose@globocom : ok ');
78 ELSE
79 DBMS_OUTPUT.put_line (' jose@globocom : falso ');
80 END IF;
81
82 IF valida_email ('jose-globo.com') = 0
83 THEN
84 DBMS_OUTPUT.put_line (' jose-globo.com : ok ');
85 ELSE
86 DBMS_OUTPUT.put_line (' jose-globo.com : falso ');
87 END IF;
88
89 IF valida_email ('jose@[globo.com') = 0
90 THEN
91 DBMS_OUTPUT.put_line (' jose@[globo.com : ok ');
92 ELSE
93 DBMS_OUTPUT.put_line (' jose@[globo.com : falso ');
94 END IF;
95 END;
96 /
jose@globo.com.br : ok
jose@globo.com : ok
jose@globocom : falso
jose-globo.com : falso
jose@[globo.com : falso
PL/SQL procedure successfully completed.
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante