Why I obtain this "Arithmetic overflow error converting numeric to data type numeric" into this simple insert query on Microsoft SQL Server? -


i pretty new database , have problem insert query insert record on microsoft sql server.

so have qs_tirpolizza table having following fields:

id  bigint polizzaid   bigint bankerid    varchar retevendita varchar percentualerendimentodainiziogestione   decimal percentualerendimentodainizioanno   decimal percentualerendimentodainiziotrimestre  decimal datacalcolobf   datetime annoriferimento int premioinizialeversato   money premiversatiinannoriferimento   money importiriscattatiinannoriferimento  money cedoleerogateinannoriferimento  money controvaloretotale  money datariferimentonav  datetime risultatoannuoinannoriferimento money premioinizialeversatodainiziogestione   money premiversatidainiziogestione    money importiriscattatidainiziogestione   money cedoleerogatedainiziogestione   money risultatoannuodainiziogestione  money capitalecasomorte   money timestamp   datetime quotetotale decimal percentualerendimentodainiziomese   decimal percentualerendimentodainiziosemestre   decimal controvaloretotaleannoprecedente    money datacontrovaloretotaleannoprecedente    datetime msgpercentualerendimentodainizioanno    varchar msgpercentualerendimentodainiziogestione    varchar msgpercentualerendimentodainiziomese    varchar msgpercentualerendimentodainiziosemestre    varchar msgpercentualerendimentodainiziotrimestre   varchar istiranomalo    bit 

and insert query:

insert qs_tirpolizza(     annoriferimento,      bankerid,      controvaloretotale,      datacalcolobf,      datariferimentonav,      percentualerendimentodainizioanno,      percentualerendimentodainiziogestione,      percentualerendimentodainiziomese,      percentualerendimentodainiziosemestre,      percentualerendimentodainiziotrimestre,      polizzaid,      premioinizialeversato,      premioinizialeversatodainiziogestione,      quotetotale,      retevendita,      timestamp,      istiranomalo  ) values  (      2015,      'xxxxxxxxxxxxxxxxxxxx',      2993197.200971,      '2015-05-30 14:22:54',      '2015-05-30 14:22:56',      -139852.94674,      -0.22452,      null,      null,      -115890.54469,      123456789,      2999932.770000,      2999932.770000,      255388.71925,      'test',      '2015-05-30 14:23:25',      0  )  

where fields percentualerendimentodainizioanno, percentualerendimentodainiziogestione, percentualerendimentodainiziomese, percentualerendimentodainiziosemestre, percentualerendimentodainiziotrimestre have decimal type on table definition.

the problem performing previous query obtain following error message , record not inserted:

15:00:14 [insert - 0 row(s), 0.000 secs] [error code: 8115, sql state: s0008] arithmetic overflow error converting numeric data type numeric.

i think problem these values have digits because reducing digits related entire , decimal sections of these number works fine. infact second version of query (that have number less digits previous fields) works fine:

insert qs_tirpolizza(     annoriferimento,      bankerid,      controvaloretotale,      datacalcolobf,      datariferimentonav,      percentualerendimentodainizioanno,      percentualerendimentodainiziogestione,      percentualerendimentodainiziomese,      percentualerendimentodainiziosemestre,      percentualerendimentodainiziotrimestre,      polizzaid,      premioinizialeversato,      premioinizialeversatodainiziogestione,      quotetotale,      retevendita,      timestamp,      istiranomalo  ) values  (      2015,      'xxx123yyy',      2993197.200971,      '2015-05-30 14:22:54',      '2015-05-30 14:22:56',      -139.9,      -0.22,      null,      null,      -110.54469,      1234567890,      2999932.770000,          2999932.770000,          255388.71925,     'ispb',      '2015-05-30 14:23:25',      0  )  

these value generated java application , can't truncate can do? exist better data type can correctly contain these data on sql server?

you should mention size of datatype while creating tables in sql server. in case should mention precision , scale. please alter table datatype below.

decimal decimal(18,6) varchar varchar(500) 

once made appropriate changes run insert script


Comments

Popular posts from this blog

java - Static nested class instance -

c# - Bluetooth LE CanUpdate Characteristic property -

JavaScript - Replace variable from string in all occurrences -