¿Qué tipo de columna PostgreSQL debo usar para almacenar un Java BigDecimal?¿Qué tipo de columna PostgreSQL se debe usar para almacenar un Java BigDecimal?
Respuesta
Ver PostgreSQL datatypes - quizá Numeric, que puede actuar como un tipo de precisión arbitraria (esto es una extensión PostgreSQL).
... sin ninguna precisión o escala crea una columna en la que los valores numéricos de cualquier precisión y la escala se pueden almacenar, hasta el límite de aplicación en la precisión.
no estoy del todo seguro de lo "límite de aplicación en la precisión es", sin embargo. Nunca he intentado realmente números grandes. Si se alcanza el límite, entonces es posible una devolución a text
. Pero, sospecho que habrá otros problemas importantes antes de entonces ;-) Si desea almacenar menos, especifique una precisión y/o escala en numeric
.
Editar como sjr señalado, la restricción es 1000 dígitos decimales de precisión (desde el mismo enlace):
El tipo numérico puede almacenar números con hasta 1000 dígitos de precisión [en implementaciones currentl] y realizar cálculos exactamente. Se recomienda especialmente para el almacenamiento de cantidades monetarias y otras cantidades que se requiere exactitud ...
Si se necesita más precisión - a pesar de tener un problema mucho mayor a la mano - a continuación, una columna numérica no será adecuado (por sí mismo). Pero esto es realmente más un extreme "¿y si?" Y probablemente no juegue un papel limitante.
Simplemente use las asignaciones de Java para los tipos de datos SQL comunes. En este caso, puede usar un NUMERIC o DECIMAL.
Esto funciona en PostgreSQL debido al soporte especial. Sin embargo, el SQL en sí mismo no define un tipo numérico de precisión arbitraria. En SQL Server, la precisión máxima es de 38 dígitos. (Afortunadamente, el valor de BigDecimal está garantizado en ese rango :-) –
La pregunta es sobre PostgreSQL, no sobre SQL Server. NUMERIC y DECIMAL no tienen límites en PostgreSQL: http://www.postgresql.org/docs/current/static/datatype-numeric.html –
Incluso PostgreSQL, de acuerdo con la documentación, tiene un límite superior de 1000 dígitos de precisión. Nunca tuve que usar números cerca de este tamaño así que no puedo comentar lo contrario. (El BigDecimal de Java tiene un * mucho * límite más grande.) El punto es que el espacio de numérico es * más pequeño * y aunque no conozco ningún motivo práctico para excederlo, el hecho no debería dejarse sin mencionar. –
- 1. ¿Qué tipo de columna se debe usar para almacenar datos serializados en un db mysql?
- 2. ¿Qué tipo de datos se debe usar para almacenar números de teléfono en SQL Server 2005?
- 3. Qué tipo de datos de columna debo usar para almacenar grandes cantidades de texto o html
- 4. ¿Qué se debe usar document.implementation.createHTMLDocument?
- 5. ¿Qué tipo de datos usar en MySQL para almacenar imágenes?
- 6. ¿Qué tipo de proyecto se debe crear para C++/CLI?
- 7. ¿Qué tipo de datos debo usar para almacenar valores monetarios?
- 8. ¿Puedo usar BigDecimal como tipo de identificación en Hibernate hbm?
- 9. ¿Qué tipo de mapas asignarías a BigDecimal en Java/Hibernate en MySQL?
- 10. ¿Qué tipo de gramática se usa para analizar PostgreSQL?
- 11. ¿Qué se debe almacenar en una cookie para un sistema de inicio de sesión?
- 12. ¿Cuánto espacio de disco se necesita para almacenar un valor NULL utilizando postgresql DB?
- 13. ¿Qué especificador de formato se debe usar para BOOL?
- 14. Mongodb: ¿Qué se debe saber antes de usar?
- 15. ¿Qué usar como un NOOP en PostgreSQL?
- 16. ¿Por qué Java BigDecimal devuelve 1E + 1?
- 17. mod_deflate o mod_gzip, ¿qué se debe usar?
- 18. ¿Qué tipo usar para almacenar una tabla de datos mutables en la memoria en Scala?
- 19. ¿Qué se debe usar para verificar la identidad en C++?
- 20. tipo de datos para representar un gran decimal en java
- 21. Qué tipo de datos de SQL Server debo usar para almacenar un byte []
- 22. BigDecimal Problema en java
- 23. ¿Qué tipo de datos debe usar en C++ cuando se trabaja con bloques de datos binarios?
- 24. Problemas de precisión Java BigDecimal
- 25. Hibernate, Postgresql: La columna "x" es de tipo oid pero la expresión es de tipo byte
- 26. BigDecimal en Java
- 27. ¿Qué tipo de excepción se debe arrojar en JavaScript?
- 28. ¿Qué tipo debe tener Struts ActionForm?
- 29. ¿Cuándo debe usar JCR y cuándo debe usar JPA/RDBMS?
- 30. ¿Qué tipos se pueden usar para miembros de anotación Java?
Tiene toda la razón, mi mal :) – sjr
Edité su publicación en la versión más reciente de los documentos. 8.2 parece un poco desactualizado;) – DrColossos
@DrColossos Muy apreciado. –