Quando equiparando un intero typecasted e una stringa contenente un numero intero, perché il lavoro VARCHAR, ma il testo non lo fa?

voti
0

Ho dovuto equiparare due colonne di due tabelle in Postgres, x.order_number che contiene il testo e a.order_reference che contiene numeri interi.

Quando eseguo

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;

si genera un errore (non può corrispondere intero al testo).

Tuttavia, dando ... WHERE x.order_number = a.order_reference :: VARCHAR(255); funziona perfettamente.

Qual è la differenza funzionale tra VARCHAR e TEXT qui?

È pubblicato 24/10/2019 alle 12:54
fonte dall'utente
In altre lingue...                            

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