PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

जैस्पर रिपोर्ट:'org.postgresql.util.PGmoney' वर्ग के क्षेत्र 'x' के लिए मूल्य प्राप्त करने में असमर्थ

यह PostgreSQL के कई कारणों में से एक है money टाइप करें बहिष्कृत किया गया था और इससे बचा जाना चाहिए . अजीब तरह से एक ही दस्तावेज़ के नए संस्करण बहिष्करण चेतावनी नहीं दिखाते हैं लेकिन मैं और अन्य इससे असहमत हैं और सोचते हैं कि इसके उपयोग को हतोत्साहित किया जाना चाहिए।

यदि संभव हो तो, numeric . का उपयोग करने के लिए अपनी स्कीमा बदलें इसके बजाय, numeric(17,2) . की तरह यदि आप केवल पूर्ण-संख्या सेंट, या मध्यवर्ती मानों के लिए कुछ अधिक सटीक स्टोर करना चाहते हैं। money . के साथ काम करते हुए आपको एक बुरे सपने का सामना करना पड़ेगा HQL में, उस बिंदु तक जहां जावा का BigDecimal . भी है वर्ग (आमतौर पर numeric को मैप करने के लिए उपयोग किया जाता है) फ़ील्ड्स) इसके अंकगणित के भयानक अनाड़ी वाक्य-विन्यास के बावजूद बेहतर है।

मैं एक ALTER TABLE blah ALTER COLUMN blahcol TYPE numeric(17,2) USING ( regexp_replace(blahcol::text, '[$,]', '', 'g')::numeric ); और money भूल जाइए टाइप अस्तित्व में था अगर मैं तुम होते।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मेरे पास COUNT('e.id') या COUNT(e.id) के लिए क्वेरी से भिन्न परिणाम हैं

  2. Vertx JDBC क्लाइंट queryWithParams - एक सूची कैसे जोड़ें?

  3. PostgreSQL फ़ंक्शन में पंक्ति प्रकार की सरणी कैसे घोषित करें?

  4. पीएल/पीजीएसक्यूएल फ़ंक्शन:निष्पादन कथन का उपयोग करके एकाधिक कॉलम के साथ सामान्य तालिका कैसे वापस करें

  5. पोस्टग्रेज़ डेटाबेस से उपयोगकर्ता को कैसे छोड़ें