validação de cnpj

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
dante
Rank: Programador Sênior
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

alguém tem uma rotina que verifica se o CNPJ/CGC é valido ??????


obrigado !
Avatar do usuário
Toad
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 253
Registrado em: Sex, 18 Nov 2005 2:14 pm
Localização: Seattle, WA
Contato:
Matheus Gonçalves
matheus.dev
twitter.com/developer__c

Selecionar tudo


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; 

http://glufke.net/oracle/viewtopic.php?t=2529
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes