Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

carlosportes

Validando CPF e CNPJ em uma tabela

Recommended Posts

Boa noite senhores,

 

Estou com dificuldades em montar uma instrução que insira informações em uma tabela a partir da validação do campo CNPJ de uma primeira tabela. Criei duas funções em SQL para a validação do campo e verificar se o mesmo é um CNPJ Válido ou um CPF. a Chamada dessas rotinas são:

 

select dbo.iscnpj(CNPJ) -> retornando 1 para válido, 0 para inválido

SELECT DBO.CPF_VALIDO(CNPJ) -> retornando S para válido, N para inválido

 

Tenho uma tabela chamada NOTAS_FISCAIS, contendo as informações das notas fiscais e uma outra chamada ANALISE onde gravo o ID da nota fiscal que tenha algum erro. Montei a seguinte instrução:

 

SET DATEFORMAT DMY;

INSERT INTO ANALISE (FK_NOTAS_FISCAIS_ID, FK_ANALISE_TIPO_CODIGO, FK_ANALISE_CLASSE_CODIGO, STATUS, ERRO,

CNPJCONTROLE, FK_CAD_USUARIO_CODIGO, DATA_ANALISE)

(SELECT NOTAS_FISCAIS.ID, '102', '001', '2', 'CNPJ ou CPF da nota fiscal inválido',

'10945318000107','00001','23/05/2011' FROM NOTAS_FISCAIS WHERE

((SELECT DBO.CPF_VALIDO(NOTAS_FISCAIS.FK_CAD_TERCEIROS_CNPJ) = 'N') AND

(select dbo.iscnpj(NOTAS_FISCAIS.FK_CAD_TERCEIROS_CNPJ) = '0'))

AND NOTAS_FISCAIS.ID NOT IN

(SELECT NOTAS_JUSTIFICA.ID_NOTAS_FISCAIS FROM NOTAS_JUSTIFICA WHERE CODIGO_ERRO = '102' )

 

Porém ao executar essa query apresenta erro:

 

Msg 102, Level 15, State 1, Line 6

Sintaxe incorreta próxima a '='.

Msg 102, Level 15, State 1, Line 7

Sintaxe incorreta próxima a '='.

 

Alguém saberia como ajudar? Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara,

 

é simples.

 

Como você está usando as funções dentro de uma querie, você não precisa usar o SELECT,

desta forma sua querie ficaria assim:

 

Select ...

from ...

where FUNÇÂO(PARAMETRO) = 'N'

 

 

 

Abrs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.