1
resposta

04 Desafio: Incluindo registros através de outra tabela

Ao aplicar o comando INSERT abaixo, acusa um erro no tipo de operando. Porem os campos com date e int correspondem nas duas tabelas. O que pode estar ocorrendo?

INSERT INTO CLIENTES SELECT CPF, NOME, ENDERECO_1 AS ENDERECO, BAIRRO, CIDADE, ESTADO, CEP, DATA_DE_NASCIMENTO AS DATA_NASCIMENTO, IDADE, GENERO, LIMITE_DE_CREDITO AS LIMITE_CREDITO, VOLUME_DE_COMPRA AS VOLUME_COMPRA, PRIMEIRA_COMPRA FROM SUCOS_FRUTAS.DBO.TABELA_DE_CLIENTES WHERE (CPF<>'19290992743' AND CPF<>'1471156710' AND CPF<>'2600586709');

ERRO Mensagem 206, Nível 16, Estado 2, Linha 20 Conflito no tipo de operando: date é incompatível com int

1 resposta

Olá, Fernando. Tudo bem?

Muito obrigado por compartilhar o seu código aqui com a gente. Parabéns pelo trabalho. Continue com essa dedicação.

Ótimo como você estruturou o INSERT INTO ... SELECT, garantindo que os campos correspondam corretamente. O problema aqui é que o SQL Server está indicando um conflito entre date e int. Isso pode estar ligado a uma conversão implícita que não está acontecendo corretamente.

Veja este exemplo de conversão explícita:


INSERT INTO CLIENTES (DATA_NASCIMENTO, IDADE)  
SELECT CAST(DATA_DE_NASCIMENTO AS DATE), IDADE  
FROM SUCOS_FRUTAS.DBO.TABELA_DE_CLIENTES  
WHERE CPF NOT IN ('19290992743', '1471156710', '2600586709');

Isso garante que DATA_DE_NASCIMENTO seja tratado como DATE, evitando o erro.

  Alura   Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!