Ir para conteúdo
Fórum Script Brasil
  • 0

Validaçao De Cpf


Guest Edy

Pergunta

2 respostass a esta questão

Posts Recomendados

  • 0
Guest Lisandro Oliveira
huh.gif

Ola galera, preciso que alguém me ajude a criar ou me dar um scrip que faça a validadacao de cpf e cnpj, no SQL Server , pois não uso aplicativo

Olá Edy,

CREATE PROCEDURE ec_verifica_CNPJ_CPF

@Tipo varchar(4) ,

@valor varchar(50)

AS

-- @Tipo = 'CNPJ' para validação de CNPJ

-- @Tipo = 'CPJ' para validação de CPF

-- DECLARA VARIÁVEIS

declare @variavel varchar(100)

declare @original varchar(100)

declare @variavelTMP varchar(100)

declare @tamanho int

declare @i int

declare @caracter varchar(1)

declare @soma numeric(15)

declare @flag numeric(15)

declare @resto int

declare @resto1 int

declare @temp int

-- REMOVE CARACTERES ESPECIAIS

select @variavel = @valor

select @variavel = replace(@variavel ,'-','')

select @variavel = replace(@variavel ,'/','')

select @variavel = replace(@variavel ,'\','')

select @variavel = replace(@variavel ,'.','')

select @variavel = replace(@variavel ,',','')

-- COMPLETA COM ZEROS A ESQUERDA

if @Tipo = 'CPF'

begin

select @variavel = '00000000000' + @variavel

select @variavel = right( @variavel ,11)

end

if @Tipo = 'CNPJ'

begin

select @variavel = '00000000000000' + @variavel

select @variavel = right( @variavel ,14)

end

-- GUARDA VALOR ORIGINAL TRATADO

select @original = @variavel

-- GERA VARIÁVEL INVERTIDA SEM OS DOIS ÚLTIMOS DIGITOS

select @i = len( @variavel ) - 2

select @variavelTMP = ''

while @i > 0

begin

select @variavelTMP = @variavelTMP + substring( @variavel ,@i ,1)

select @i = @i -1

end

select @variavel = @variavelTMP

-- CARREGA VARIÁVEL TAMANHO

select @tamanho = len( @variavel )

-- INICIALIZA VARIÁVEIS

select @i = 1

select @soma = 0

select @flag = 2

-- PRIMEIRA VERIFICAÇÃO (LOOP)

while @i <= @tamanho

begin

select @caracter = substring( Left( @variavel , @tamanho) , @i , 1)

if ( isnumeric( @caracter ) = 1 )

begin

select @soma = @soma + convert( int , @caracter ) * @flag

if @tamanho = 12

begin

if @flag = 9

begin

select @flag = 2

end

else

begin

select @flag = @flag + 1

end

end

else

begin

if @flag = 0

begin

select @flag = 2

end

else

begin

select @flag = @flag + 1

end

end

end

select @i = @i +1

end

--ERRO RNCONTRADO , VALOR INVÁLIDO

if @soma = 0

begin

select ret = 'INVALIDO'

return

end

-- CALCULA RESTO

select @temp = (@soma / 11)

select @resto = ((@temp * 11) - @soma) * -1

if @resto = 0 or @resto = 1

begin

select @resto = 0

end

else

begin

select @resto = ( 11 - @resto )

end

-- INICIALIZA VARIÁVEIS

select @i = 1

select @soma = 0

select @flag = 2

-- ADICIONA 1 A VARIÁVEL @tamanho

select @tamanho = @tamanho + 1

-- SEGUNDA VERIFICAÇÃO (LOOP)

while @i <= @tamanho

begin

select @caracter = substring( convert( varchar(10) , @resto ) + @variavel , @i , 1)

select @soma = @soma + convert( int , @caracter ) * @flag

if @tamanho = 13

begin

if @flag = 9

begin

select @flag = 2

end

else

begin

select @flag = @flag + 1

end

end

if @tamanho = 10

begin

select @flag = @flag + 1

end

select @i = @i +1

end

-- CALCULA RESTO

select @temp = (@soma / 11)

select @resto1 = ((@temp * 11) - @soma) * -1

if @resto1 = 0 or @resto1 = 1

begin

select @resto1 = 0

end

else

begin

select @resto1 = ( 11 - @resto1 )

end

-- REINVERTER VARIAVEL

select @i = len( @variavel )

select @variavelTMP = ''

while @i > 0

begin

select @variavelTMP = @variavelTMP + substring( @variavel ,@i ,1)

select @i = @i -1

end

select @variavel = @variavelTMP

select @variavel = @variavel + convert(varchar(1) , @resto ) + convert(varchar(1) , @resto1 )

if @variavel = @original

begin

select ret = 'VALIDO'

end

else

begin

select ret = 'INVALIDO'

end

Link para o comentário
Compartilhar em outros sites

  • 0

Ola amigo :!:

Agradeco pela atençao e pela resposta rodei o script que você forneceu e rodou direito, agora tenho a segunda parte da duvida é a seguinte se puder me ajudar, como posso incluir esta procedure no meu banco, vou ser mais especifico, tenho uma tabela que possui um campo chamado CPF_CNPF, o DBA anterior criou este campo e foi incluindo as informaçoes se se preocupar com a qualidade das informaçoes, agora ele não trabalha mais na empresa e quero rodar esta procedure na tabela para que ela faça as verificaçoes dos CPFe CNPJ e as informaçoes que não forem validas ela coloca em outra tabela para que eu possa fazer o tratamento, sera que pode me ajudar como colocar esta procedure para ler a minha tabela, se tiver duvida na solicitacao meu MSN é orfeua@hotmauil.com

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...