sql >> Databáze >  >> RDS >> PostgreSQL

Jasperova zpráva:nelze získat hodnotu pro pole 'x' třídy 'org.postgresql.util.PGmoney'

Toto je jeden z několika důvodů, proč PostgreSQL money typ byl zastaralý a je třeba se mu vyhnout . Kupodivu novější verze stejné dokumentace nezobrazují upozornění na ukončení podpory ale já a další s tím nesouhlasím a myslím si, že by se od jeho používání mělo odrazovat.

Pokud je to jen trochu možné, změňte schéma na použití numeric místo toho jako numeric(17,2) pokud chcete ukládat pouze celá čísla centů nebo něco přesnějšího pro mezihodnoty. Při práci s money budete mít noční můru v HQL až do bodu, kdy dokonce BigDecimal v Javě třída (obvykle se používá k mapování numeric pole) je lepší navzdory strašně neobratné syntaxi itsw aritmetiky.

Udělal bych ALTER TABLE blah ALTER COLUMN blahcol TYPE numeric(17,2) USING ( regexp_replace(blahcol::text, '[$,]', '', 'g')::numeric ); a zapomeňte na money typ existoval, kdybych byl tebou.




  1. Co přesně dělá GRANT USAGE ON SCHEMA?

  2. Pokus o vložení dat do SQL tabulky pomocí PHP / Html z registračního formuláře

  3. Jak používat příkazy jako DROP TABLE atd. v rámci uložené procedury

  4. Použití pravidel polí pomocí klasifikace