Do not speak Portuguese? Translate this site with Google or Bing Translator
Error Postgresql NumericValueOutOfRange

Posted on: January 04, 2022 09:30 AM

Posted by: Renato

Views: 111

Postgres’s NumericValueOutOfRange

Ponnusamy K

May 11, 2018·2 min read

Quando você encontra um erro parecido com este,

 

ActiveRecord::RangeError: PG::NumericValueOutOfRange:
ERROR: numeric field overflow
DETAIL: A field with precision 18, scale 6 must round to an absolute value less than 10^¹²

No banco de dados Postgres, uma das minhas tabelas tinha um campo definido como numérico (18,6). Definição do tipo de dado numérico de acordo com a docs: “até 131072 dígitos antes da vírgula decimal; até 16383 dígitos após a vírgula decimal ”.

https://www.postgresql.org/docs/9.6/static/datatype-numeric.html

Quando tentei inserir números inteiros de 18 dígitos, obtive o erro abaixo.

— SQL Error [22003]: ERROR: numeric field overflow Detail: A field with precision 18, scale 6 must round to an absolute value less than 10¹².

Escala de 6 anexada ao valor inteiro, o total foi de 24 dígitos. Daí o erro. A escala de 6 é parte de 18 dígitos.

123456789012345678 (18 digits integer number)
the scale of 6 to be appended.
123456789012345678.000000 (the digits 000000 besides dot(.) scales of 6)

Total de números 24,
Aqui, o valor da parte inteira deve ser inferior a 12 dígitos 123456789012 (12 dígitos).

Registro inserido com sucesso.

insert into my_table values (‘Test’, 1234567890.1234567);

Aqui eu tenho 7 dígitos após a vírgula decimal, a escala de 6 não é extensível, em vez disso, o valor do lado direito é arredondado para 6 e armazenado.

como ponto de otimização, precisamos aumentar o número de dígitos antes da vírgula decimal.

ALTER TABLE my_table ALTER COLUMN value NUMERIC(22,6)

Francium Tech é uma empresa de tecnologia a laser focada em fornecer software de escala de alta qualidade em velocidades extremas. Números e tamanho dos dados não nos assustam. Se você tiver algum requisito ou quiser uma verificação gratuita da saúde de seus sistemas ou arquitetura, fique à vontade para enviar um e-mail para [email protected], entraremos em contato com você!

Fonte: https://blog.francium.tech/postgress-numericvalueoutofrange-ad7bcb01f2f8

 


1

Share
About Author

Renato

Developer

Add a Comment
Comments 0 Comments

No comments yet! Be the first to comment

Blog Search


Categories

OUTROS (9) Variados (108) PHP (86) Laravel (95) Black Hat (3) front-end (23) linux (70) postgresql (27) Docker (7) rest (4) soap (1) webservice (2) October (1) CMS (2) node (6) backend (10) ubuntu (33) devops (10) nodejs (3) npm (1) nvm (0) git (2) firefox (0) react (6) reactnative (5) collections (0) javascript (3) reactjs (7) yarn (0) adb (1) solid (0) blade (2) models (1) controllers (0) log (0) html (2) hardware (2) aws (11) Transcribe (1) transcription (1) google (3) ibm (1) nuance (1) PHP Swoole (4) mysql (20) macox (2) flutter (1) symfony (1) cor (1) colors (2) homeOffice (2) jobs (1) imagick (2) ec2 (1) sw (1) websocket (1) markdown (1) ckeditor (1) tecnologia (9) faceapp (1) eloquent (10) query (2) sql (31) ddd (2) nginx (5) apache (4) certbot (1) lets-encrypt (2) debian (6) liquid (1) magento (1) ruby (1) LETSENCRYPT (1) Fibonacci (1) wine (1) transaction (1) pendrive (1) boot (1) usb (1) prf (1) policia (1) federal (1) lucena (1) mongodb (4) paypal (1) payment (1) zend (1) vim (1) ciencia (6) js (1) nosql (1) java (1) JasperReports (1) phpjasper (1) covid19 (1) saude (1) athena (1) cinnamon (1) phpunit (1) binaural (1) mysqli (2) database (25) windows (1) vala (1) json (2) oracle (1) mariadb (2) dev (12) webdev (21) s3 (4) storage (1) kitematic (1) gnome (2) web (1) intel (1) piada (1) cron (2) dba (9) lumen (1) ffmpeg (1) android (2) aplicativo (1) fedora (2) shell (2) bash (2) script (2) lider (1) htm (1) csv (1) dropbox (1) db (2) combustivel (2) haru (1) presenter (1) gasolina (1) MeioAmbiente (1) Grunt (0) biologia (1) programming (10) performance (1) brain (1) smartphones (1) telefonia (1) privacidade (1) opensource (1) microg (1) iode (1) ssh (1) zsh (1) terminal (1) dracula (1) spaceship (1) mac (1) idiomas (1) laptop (1) developer (4) api (1) data (1)

New Articles



Get Latest Updates by Email