注册

达梦数据库保存数据DOUBLE 类型丢失精度问题,可以求大佬看看吗?

安穩 2025/12/30 194 3

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8.4
【操作系统】:Linux localhost.localdomain 4.19.91-26.an8.x86_64 #1 SMP Tue May 24 13:10:09 CST 2022 x86_64 x86_64 x86_64 GNU/Linux
【CPU】:
图片.png
【问题描述】*:
通过MyBatis 插入同样的数据,发现达梦数据库的精度丢失了,而Oracle保存正常,目前发现大于10位会丢,大致的一个SQLMERGE INTO 语句,Java 属性是Double,然后从MyBatis 执行的日志都是带精度的,然后保存到达梦发现如图三,精度丢失了
图片.png
图片.png
图片.png
具体SQL如下,PID可以认为是主键

MERGE
INTO
    hdc_dwd.dwd_patient_predict_emr_drg T1
USING (SELECT '1132192lhdsyq'    PID,

              3673.1840000000007 HOSPITAL_DRG_COST_AVG
       FROM dual) T
ON (
    T1.PID = T.PID
    )
WHEN MATCHED THEN
    UPDATE
    SET T1.HOSPITAL_DRG_COST_AVG = T.HOSPITAL_DRG_COST_AVG,
        WHEN NOT MATCHED THEN INSERT (
        PID,
        HOSPITAL_DRG_COST_AVG 
        )
    VALUES
        (
        T.PID,
        T.HOSPITAL_DRG_COST_AVG 
         );

有人遇到过这个问题吗?有什么修复方案吗?
连接和驱动版本如下
图片.png

<dependency> <groupId>com.dameng</groupId> <artifactId>DmJdbcDriver8</artifactId> <version>8.1.3.162</version> </dependency>

求大佬看看,这个大概是什么原因呀?

回答 0
暂无回答
扫一扫
联系客服