Quando igualando um inteiro typecasted e uma seqüência de caracteres contendo um inteiro, por que VARCHAR trabalho, mas texto não?

votos
0

Eu tive a igualar duas colunas de duas tabelas em Postgres, x.order_number que contém texto e a.order_reference que contém números inteiros.

Quando eu corro

UPDATE ol.orders x
SET affiliate_network           = 'AWE',
    affiliate_site_name         = a.site_name,
    ...
FROM dl.awe a
WHERE x.order_number = a.order_reference :: TEXT;

ele lança um erro (não pode igualar inteiro para texto).

No entanto, dando ... WHERE x.order_number = a.order_reference :: VARCHAR(255); funciona perfeitamente.

Qual é a diferença funcional entre VARCHAR e TEXT aqui?

Publicado 24/10/2019 em 12:54
fonte usuário
Em outras línguas...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more