Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да се справим със загубата на точност на цифровите типове на JDBC поради групиращи функции

Това е спекулация, базирана на подобно поведение в драйвера на Postgres postgresql-9.4-1204-jdbc42.jar .

За неопределен NUMERIC базата данни изглежда не съхранява никаква конкретна информация за точността и мащаба на колоната. Това позволява на базата данни да съхранява вътрешно стойността по какъвто начин изглежда подходящ. От https://www.postgresql.org/docs/current/ static/datatype-numeric.html

От драйвера не знае какъв е конкретният максимум на изпълнението на сървъра е, че не може да върне действителните стойности. Връща 0, за да покаже, че не знае действителните стойности и не иска да прави обосновани предположения.

Изглежда, че ситуацията е същата с Oracle . Максималната прецизност може да е по-висока, но преносимостта се гарантира само до 38 цифри.

Що се отнася до решаването на проблема във въпроса, както StanislavL посочи, можете да принудите стойността да достигне конкретна точност/мащаб чрез кастинг.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-06502:PL/SQL:числова или стойностна грешка:буферът на символен низ е твърде малък, изключение от C# код

  2. Кой буркан на уеблогичен сървър/други ресурси би могъл да има клас:oracle.security.jps.ee.http.JpsFilter?

  3. Как да преброим срещанията на разделител в низ, с изключение на тези в кавички

  4. Какво е изглед в Oracle?

  5. Tomcat 6/7 JNDI с множество източници на данни