sql >> Database >  >> RDS >> PostgreSQL

Jasper Report:kan geen waarde krijgen voor veld 'x' van klasse 'org.postgresql.util.PGmoney'

Dit is een van de vele redenen waarom het PostgreSQL money type was verouderd en moet worden vermeden . Vreemd genoeg geven nieuwere versies van dezelfde documentatie de beëindigingswaarschuwing niet weer maar ik en anderen zijn het daar niet mee eens en vinden dat het gebruik ervan moet worden ontmoedigd.

Wijzig indien mogelijk uw schema om numeric . te gebruiken in plaats daarvan, zoals numeric(17,2) als u alleen hele getallen wilt opslaan, of iets nauwkeurigers voor tussenliggende waarden. Je zult een nachtmerrie hebben als je met money werkt in HQL, tot het punt waar zelfs Java's BigDecimal klasse (meestal gebruikt om numeric toe te wijzen velden) is beter ondanks de ontzettend onhandige syntaxis van zijn war arithmetic.

Ik zou een ALTER TABLE blah ALTER COLUMN blahcol TYPE numeric(17,2) USING ( regexp_replace(blahcol::text, '[$,]', '', 'g')::numeric ); en vergeet het money type bestond als ik jou was.




  1. Help me met deze MySql full outer join (of unie)

  2. SQLite of MySql? Hoe beslissen?

  3. ORA-22288:bestands- of LOB-bewerking FILEOPEN is mislukt. Bestandsnaam, mapnaam is onjuist

  4. Ik heb 2 records in een database Vue geeft 8 records weer