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
Post a Comment