DBAtlas · Atlas de operações de banco de dados

42804: datatype_mismatch

PostgreSQL

O que significa?

O tipo de dado esperado e o tipo de dado fornecido não correspondem. Por exemplo, atribuir um valor do tipo errado a uma coluna, ramos de CASE retornando tipos diferentes, ou ramos de UNION cujos tipos não se alinham.

Por que acontece?

Uma atribuição incompatível com o tipo da coluna; ramos de CASE/COALESCE produzindo tipos diferentes; colunas correspondentes em um UNION com tipos diferentes; um valor retornado (RETURN) que não corresponde ao tipo de retorno da função; um valor não booleano onde se espera um booleano.

Como resolver

Faça cast da expressão para o tipo correto: value::integer ou CAST(value AS numeric). Faça todos os ramos do CASE retornarem o mesmo tipo. Em um UNION, alinhe os tipos das colunas correspondentes dos dois lados. Certifique-se de que a condição WHERE resulta em um booleano.

Abrir no DBAtlas →

Mais entradas deste banco