Guest Edy Postado Julho 19, 2004 Denunciar Share Postado Julho 19, 2004 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Lisandro Oliveira Postado Julho 19, 2004 Denunciar Share Postado Julho 19, 2004 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Guest Postado Julho 19, 2004 Denunciar Share Postado Julho 19, 2004 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest Edy
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
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
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.