mysql bigdecimal 精度_mybatis 批量插入sqlserver BigDecimal 精度下降的情况

现象:

1:批量插入数据时,如果插入的数据精度不统一,最终入库的数据精度统一按最低的精度入库;

2:单条插入无此问题;

3:批量更新也无此问题;

4:出现问题与写入数据的精度顺序无关;

1:使用SQL Server Profiler 跟踪sql如下:

declare @p1 int

set @p1=3

exec sp_prepare @p1 output,N'@P0 bigint,@P1 datetime,@P2 datetime,@P3 decimal(38,1),@P4 nvarchar(4000),@P5 bigint,@P6 int,@P7 nvarchar(4000),@P8 nvarchar(4000),@P9 bigint,@P10 datetime,@P11 datetime,@P12 decimal(38,2),@P13 nvarchar(4000),@P14 bigint,@P15 int,@P16 nvarchar(4000),@P17 nvarchar(4000)',N'

INSERT INTO xxxx( INDIC_ID, PUBLISH_DATE,

PERIOD_DATE, DATA_VALUE, NOTES,

ETL_CRC, QA_RULE_CHK_FLG, QA_MANUAL_FLG,

QA_ACTIVE_FLG, CREATE_BY, CREATE_TIME,

UPDATE_BY, UPDATE_TIME

)

VALUES

( @P0 ,

@P1 ,

@P2 , @P3 , @P4 ,

@P5 , @P6 , 1,

1, @P7 ,GETDATE(),

@P8 ,GETDATE()

)

,

( @P9 ,

@P10 ,

@P11 , @P12 , @P13 ,

@P14 , @P15 , 1,

1, @P16 ,GETDATE(),

@P17 ,GETDATE()

) SELECT SCOPE_IDENTITY() AS _JTDS_GENE_R_ATED_KEYS_',1

select @p1

2:将批量插入的sql手动到数据库执行:正常

3:将库换成mysql:正常

4:将驱动由jtds换成 microsoft.sqlserver:异常,精度下降

解决方法:统一写入数据的精度

具体原因未知??

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值