Esta es una de las varias razones por las que el money
de PostgreSQL type fue obsoleto y debe evitarse
. Extrañamente versiones más recientes de la misma documentación no muestran la advertencia de obsolescencia pero yo y otros
No estoy de acuerdo con eso y creo que su uso debe desaconsejarse.
Si es posible, cambie su esquema para usar numeric
en cambio, como numeric(17,2)
si solo desea almacenar centavos de números enteros, o algo más preciso para valores intermedios. Tendrás una pesadilla trabajando con money
en HQL, hasta el punto en que incluso BigDecimal
de Java class (usualmente usado para mapear numeric
campos) es mejor a pesar de la sintaxis terriblemente torpe de la aritmética itsw.
Yo haría un ALTER TABLE blah ALTER COLUMN blahcol TYPE numeric(17,2) USING ( regexp_replace(blahcol::text, '[$,]', '', 'g')::numeric );
y olvida el money
tipo existiera si yo fuera tú.