alguém tem algum fonte que valida se o CPF, CNPJ e o CEP são verdadeiros
se alguém tiver
disponibiliza aee!!
por favor
abraços
VALIDAR CPF, CNPJ, CEP
- alef
- Rank: Analista Pleno
- Mensagens: 119
- Registrado em: Ter, 06 Nov 2007 2:45 pm
- Localização: Patos de Minas - MG
Alexandre Matos
Patos de Minas - MG
Do interior de Minas para o resto do Mundo
Patos de Minas - MG
Do interior de Minas para o resto do Mundo
CNPJ
CPF
Agora o CEP, você vai precisar acessar o bd dos correios, ou pelo menos ter uma base de dados do CEP.
Se alguém tiver essa base, poderia disponibilizar para todos que é uma fonte muito preciosa!
.
CREATE OR REPLACE FUNCTION CNPJ
(p_cgc IN CHAR)
RETURN BOOLEAN
IS
m_total NUMBER := 0;
m_digito NUMBER := 0;
BEGIN
FOR i IN 1..4 LOOP
m_total := m_total + substr(p_cgc,i,1) * (6 - i);
END LOOP;
FOR i IN 5..12 LOOP
m_total := m_total + substr(p_cgc,i,1) * (14 - i);
END LOOP;
m_digito := 11 - mod(m_total,11);
IF m_digito > 9 THEN
m_digito := 0;
END IF;
IF m_digito != substr(p_cgc,13,1) THEN
RETURN FALSE;
END IF;
m_digito := 0;
m_total := 0;
FOR i IN 1..5 LOOP
m_total := m_total + substr(p_cgc,i,1) * (7 - i);
END LOOP;
FOR i IN 6..13 LOOP
m_total := m_total + substr(p_cgc,i,1) * (15 - i);
END LOOP;
m_digito := 11 - mod(m_total,11);
IF m_digito > 9 THEN
m_digito := 0;
END IF;
IF m_digito != substr(p_cgc,14,1) THEN
RETURN FALSE;
END IF;
RETURN TRUE;
end;
CREATE OR REPLACE FUNCTION CPF
(p_cpf IN CHAR)
RETURN BOOLEAN
IS
m_total NUMBER := 0;
m_digito NUMBER := 0;
BEGIN
FOR i IN 1..9 LOOP
m_total := m_total + substr(p_cpf,i,1) * (11 - i);
END LOOP;
m_digito := 11 - mod(m_total,11);
IF m_digito > 9 THEN
m_digito := 0;
END IF;
IF m_digito != substr(p_cpf,10,1) THEN
RETURN FALSE;
END IF;
m_digito := 0;
m_total := 0;
FOR i IN 1..10 LOOP
m_total := m_total + substr(p_cpf,i,1) * (12 - i);
END LOOP;
m_digito := 11 - mod(m_total,11);
IF m_digito > 9 THEN
m_digito := 0;
END IF;
IF m_digito != substr(p_cpf,11,1) THEN
RETURN FALSE;
END IF;
RETURN TRUE;
end;
Agora o CEP, você vai precisar acessar o bd dos correios, ou pelo menos ter uma base de dados do CEP.
Se alguém tiver essa base, poderia disponibilizar para todos que é uma fonte muito preciosa!
.
-
- Rank: Programador Sênior
- Mensagens: 48
- Registrado em: Qui, 24 Jan 2008 1:58 pm
- Localização: são paulo sp
Danilo Maranini
Aprendendo e Compartilhando
Aprendendo e Compartilhando
então cara
eu nunca trabalhei com FUNCTION no FORMS
depois que eu crio essa function no banco
como eu chamo ela no forms ???
desculpe a ignorancia!
eu nunca trabalhei com FUNCTION no FORMS
depois que eu crio essa function no banco
como eu chamo ela no forms ???
desculpe a ignorancia!
- alef
- Rank: Analista Pleno
- Mensagens: 119
- Registrado em: Ter, 06 Nov 2007 2:45 pm
- Localização: Patos de Minas - MG
Alexandre Matos
Patos de Minas - MG
Do interior de Minas para o resto do Mundo
Patos de Minas - MG
Do interior de Minas para o resto do Mundo
mais uma vez me desculpa
te passei errado a chamada ai fica dificil pra você
te passei errado a chamada ai fica dificil pra você
if not cpf(:participantes.cic_participante) then
message('CPF invalido');
message(' ');
raise form_trigger_failure;
end if;
-
- Rank: Programador Sênior
- Mensagens: 48
- Registrado em: Qui, 24 Jan 2008 1:58 pm
- Localização: são paulo sp
Danilo Maranini
Aprendendo e Compartilhando
Aprendendo e Compartilhando
aí alexandre
vlw cara
rolo certinho
ele valida e tals!!!!
só que tivi que inibir a digitação de caracteres porque não trata não é? uhahua
mas aaa velho muito fo*a huahua vlw mesmo
vlw cara
rolo certinho
ele valida e tals!!!!
só que tivi que inibir a digitação de caracteres porque não trata não é? uhahua
mas aaa velho muito fo*a huahua vlw mesmo
- alef
- Rank: Analista Pleno
- Mensagens: 119
- Registrado em: Ter, 06 Nov 2007 2:45 pm
- Localização: Patos de Minas - MG
Alexandre Matos
Patos de Minas - MG
Do interior de Minas para o resto do Mundo
Patos de Minas - MG
Do interior de Minas para o resto do Mundo
inibir caracteres? como assim? eu coloco o item do tipo number e uso mascara 000"."000"."000"-"00 para tratar. não sei se é isso que você disse
-
- Rank: Programador Sênior
- Mensagens: 48
- Registrado em: Qui, 24 Jan 2008 1:58 pm
- Localização: são paulo sp
Danilo Maranini
Aprendendo e Compartilhando
Aprendendo e Compartilhando
isso
para a pessoa não digitar
letras ...
eu coloquei no format mask o que você coloco ai em cima
deu esse erro
FRM-50027: Invalid format mask for given datatype.
Edit Item: CIC_PARTICIPANTE
Item: CIC_PARTICIPANTE
Block: PARTICIPANTES
Form: SAT_CAD_PARTICIPANTES
FRM-30085: Unable to adjust form for output.
tipo
o codigo não estava validando quano eu colocava por exe. 359.589
mas se eu colocar 359589 ele valida...
entendeu ?
para a pessoa não digitar
letras ...
eu coloquei no format mask o que você coloco ai em cima
deu esse erro
FRM-50027: Invalid format mask for given datatype.
Edit Item: CIC_PARTICIPANTE
Item: CIC_PARTICIPANTE
Block: PARTICIPANTES
Form: SAT_CAD_PARTICIPANTES
FRM-30085: Unable to adjust form for output.
tipo
o codigo não estava validando quano eu colocava por exe. 359.589
mas se eu colocar 359589 ele valida...
entendeu ?
-
- Rank: Analista Júnior
- Mensagens: 78
- Registrado em: Qua, 16 Jan 2008 5:06 pm
- Localização: RJ
Alexandre...
fiz desse jeito que você falou aí e ficou show... inclusive com a mascara de formato... cpf( 999"."999"."999"."99 )
só que tenho uma dúvida.... tem como validar no mesmo campo o CPF ou CNPJ ou tenho que fazer um campo para cada um...?
eu consegui validar os dois... mais só quando eu coloco um em cada campo... no mesmo campo não vai, só valida o CPF...
tem alguma forma de validar os dois no mesmo campo????
outra dúvida... só aparece a mensagem quando o CPF é Invalido.
tem como colocar para aparecer mensagem também quando o CPF for correto??
desde já obrigado
fiz desse jeito que você falou aí e ficou show... inclusive com a mascara de formato... cpf( 999"."999"."999"."99 )
só que tenho uma dúvida.... tem como validar no mesmo campo o CPF ou CNPJ ou tenho que fazer um campo para cada um...?
eu consegui validar os dois... mais só quando eu coloco um em cada campo... no mesmo campo não vai, só valida o CPF...
tem alguma forma de validar os dois no mesmo campo????
outra dúvida... só aparece a mensagem quando o CPF é Invalido.
tem como colocar para aparecer mensagem também quando o CPF for correto??
desde já obrigado
-
- Rank: Programador Sênior
- Mensagens: 48
- Registrado em: Qui, 24 Jan 2008 1:58 pm
- Localização: são paulo sp
Danilo Maranini
Aprendendo e Compartilhando
Aprendendo e Compartilhando
tem alguma forma de validar os dois no mesmo campo????
então
eu acredito que você tenha que fazer ele entender que o que esta sendo digitado.
CPF ou CNPJ
bom
você pode colocar um option onde a pessoa seleciona FISICA ou JURIDICA,
porque senao tiver parametros não tem como ele entender
atraves do parametro ele verifica com um IF
se for FISICA faz...
senao faz ...
fim
entendeu ??
-------------------------------------------------
tem como colocar para aparecer mensagem também quando o CPF for correto??
sim
existem duas linhas iguais,,, a primeira tem a mensagem de cpf incorreto.
no segundo entre parenteses tem uma ' ' ... entre eles coloque a mensagem... porque é um return da trigger.
------------
então
eu acredito que você tenha que fazer ele entender que o que esta sendo digitado.
CPF ou CNPJ
bom
você pode colocar um option onde a pessoa seleciona FISICA ou JURIDICA,
porque senao tiver parametros não tem como ele entender
atraves do parametro ele verifica com um IF
se for FISICA faz...
senao faz ...
fim
entendeu ??
-------------------------------------------------
tem como colocar para aparecer mensagem também quando o CPF for correto??
sim
existem duas linhas iguais,,, a primeira tem a mensagem de cpf incorreto.
no segundo entre parenteses tem uma ' ' ... entre eles coloque a mensagem... porque é um return da trigger.
------------
- alef
- Rank: Analista Pleno
- Mensagens: 119
- Registrado em: Ter, 06 Nov 2007 2:45 pm
- Localização: Patos de Minas - MG
Alexandre Matos
Patos de Minas - MG
Do interior de Minas para o resto do Mundo
Patos de Minas - MG
Do interior de Minas para o resto do Mundo
Para fazer a mensagem de correto você coloca assim na when validate item
if not cpf(:TPESAGEM.CPF_MOTORISTA) then
message('CPF invalido');
message(' ');
raise form_trigger_failure;
else
message('CPF válido');
message(' ');
end if;
-
- Rank: Analista Júnior
- Mensagens: 78
- Registrado em: Qua, 16 Jan 2008 5:06 pm
- Localização: RJ
Francisco Angelo
///////////////////////////////
///////////////////////////////
Valeu cara...
Obrigado...
Obrigado...
-
- Rank: Programador Sênior
- Mensagens: 48
- Registrado em: Qui, 24 Jan 2008 1:58 pm
- Localização: são paulo sp
Danilo Maranini
Aprendendo e Compartilhando
Aprendendo e Compartilhando
se eu colocar
111111111111111
22222222222222222
33333333333333
444444444444
55555555555
66666666666666
777777777777
88888888888888
99999999999999999
000000000000000000
ele considera CPF valido.....
111111111111111
22222222222222222
33333333333333
444444444444
55555555555
66666666666666
777777777777
88888888888888
99999999999999999
000000000000000000
ele considera CPF valido.....
- alef
- Rank: Analista Pleno
- Mensagens: 119
- Registrado em: Ter, 06 Nov 2007 2:45 pm
- Localização: Patos de Minas - MG
Alexandre Matos
Patos de Minas - MG
Do interior de Minas para o resto do Mundo
Patos de Minas - MG
Do interior de Minas para o resto do Mundo
pois é Dante. realmente tem esse bug, para corrigir isso você vai ter de fazer um if onde ele compara com esses valores e se coincidir ele da return false.
-
- Rank: Analista Sênior
- Mensagens: 135
- Registrado em: Qui, 04 Out 2007 3:36 pm
- Localização: Belo Horizonte - MG
Prezado Alexandre e colegas,
Tenho contado com a ajuda de voces e principalmente de nosso amigo Francisco Angelo. tenho o campo cpf gravdo em meu banco definido como Number(11). Coloquei a mascara conforme informado acima. Assim que compilo e digito o cpf, ele dá ok, navego entre os registros e tudo certinho mas, se eu sair do programa e voltar novamente, eele não mostra os cpfs gravados. Lá no banco ele está gravado assim: 8,8889E+10 Oque está acontecendo? como é que eu corrijo isso?
Grato,
Edson
Tenho contado com a ajuda de voces e principalmente de nosso amigo Francisco Angelo. tenho o campo cpf gravdo em meu banco definido como Number(11). Coloquei a mascara conforme informado acima. Assim que compilo e digito o cpf, ele dá ok, navego entre os registros e tudo certinho mas, se eu sair do programa e voltar novamente, eele não mostra os cpfs gravados. Lá no banco ele está gravado assim: 8,8889E+10 Oque está acontecendo? como é que eu corrijo isso?
Grato,
Edson
-
- Rank: DBA Pleno
- Mensagens: 232
- Registrado em: Sex, 30 Mar 2007 7:26 pm
- Localização: Londrina - PR
Rafael O. Genaro
Edson,Tenho contado com a ajuda de voces e principalmente de nosso amigo Francisco Angelo. tenho o campo cpf gravdo em meu banco definido como Number(11). Coloquei a mascara conforme informado acima. Assim que compilo e digito o cpf, ele dá ok, navego entre os registros e tudo certinho mas, se eu sair do programa e voltar novamente, eele não mostra os cpfs gravados. Lá no banco ele está gravado assim: 8,8889E+10 Oque está acontecendo? como é que eu corrijo isso?
Os dados certamente foram gravados corretamente na base.
Provavelmente o problema está na ferramenta que você está utilizando para recuperar estes dados, que está configurada para retornar números muito grandes em notação científica.
No plsqldeveloper, por exemplo, existe uma configuração para converter campos numericos retornados por uma consulta para char, a fim de exibir números grandes.
Já no Sql*Plus, a solução seria fazer a consulta com a função to_char sobre o campo, ou utilizar o comando
col <coluna> format 99999999999999
select <coluna> from <tabela> where ...
-
- Rank: Analista Sênior
- Mensagens: 135
- Registrado em: Qui, 04 Out 2007 3:36 pm
- Localização: Belo Horizonte - MG
Prezado Colega,
No meu caso, estou usando o Forms 6i, eu teria que fazer alguma configuração no Forms? Já no banco, como o campo foi definido como number(11) teria como eu limpar o campo? ou eu teria que mudar o tipo do campo no meu banco?
Grato,
Edson
No meu caso, estou usando o Forms 6i, eu teria que fazer alguma configuração no Forms? Já no banco, como o campo foi definido como number(11) teria como eu limpar o campo? ou eu teria que mudar o tipo do campo no meu banco?
Grato,
Edson
-
- Rank: Analista Júnior
- Mensagens: 78
- Registrado em: Qua, 16 Jan 2008 5:06 pm
- Localização: RJ
Francisco Angelo
///////////////////////////////
///////////////////////////////
Edison,
altera o campo cpf de Number para varchar.
no meu aparece certinho... no meu está cpf varchar(15).
quando eu consulto no banco, ele aparece certo..
altera o campo cpf de Number para varchar.
no meu aparece certinho... no meu está cpf varchar(15).
quando eu consulto no banco, ele aparece certo..
-
- Rank: Analista Sênior
- Mensagens: 135
- Registrado em: Qui, 04 Out 2007 3:36 pm
- Localização: Belo Horizonte - MG
Prezado Francisco,
Perfeito!! Fiza exatamente como você mandou e deu certinho, está funcionando beleza!!
Como estou empolgado, volto a qualquer momento a importunar tanto a você como aos demais colegas daqui para ajuda, pois ainda vou precisar muito de voces!! Já tenho algum material e gostaria de saber também se você tem para disponibilizar ou me indicaria como encontrar mais algum material sobre o forms!!
Mais uma vez, meu muito obrigado,
Edson Amorim
Perfeito!! Fiza exatamente como você mandou e deu certinho, está funcionando beleza!!
Como estou empolgado, volto a qualquer momento a importunar tanto a você como aos demais colegas daqui para ajuda, pois ainda vou precisar muito de voces!! Já tenho algum material e gostaria de saber também se você tem para disponibilizar ou me indicaria como encontrar mais algum material sobre o forms!!
Mais uma vez, meu muito obrigado,
Edson Amorim
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 15 visitantes