注册

数据迁移精度丢失

王顺喜 2026/01/09 368 2

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DB Version: 0x7000c
【操作系统】:linux
【CPU】:x86
【问题描述】*:使用kettle迁移数据,精度丢失,原因是
dm.jdbc.driver.DmdbResultSetMetaData获取不了正确的精度 java.sql.ResultSetMetaData#getPrecision
截屏20260109 16.52.26.png
补充信息,达梦数据库在创建视图时,会出现精度丢失

  • 视图语句如下,查询表有精度为2,在生成视图时精度丢失,需要进行cast强转
create or replace view v_etl_gzdp_zrzy as
with tdzy_hj as
 (
  -----------土地资源_合计/国有土地
  select max(data_id) data_id,
          a.year,
          a.date_year,
          a.month,
          'GZ_ZRZY'as yw_type,
          a.data_version,
          a.rg_code,
          a.rg_name,
          'tdzy_hj' as zb_code,
          '土地资源_合计' as zb_name,
          sum(HJ_FSD+HJ_SD) as zb
    from V_NPCS_ODS_GH_ZRZY_TDZY  a
   where a.yw_type  LIKE 'GZ_ZRZY_NB_TDZY%' ---- 数据来源于汇总表
     AND a.xm_code IN ('nms')
   group by
             a.year,
             a.date_year,
             a.month,
             a.data_version,
             a.rg_code,
             a.rg_name
            ),
 tdzy_gd as
 (
  -----------土地资源_耕地
  select max(data_id) data_id,
          a.year,
          a.date_year,
          a.month,
          'GZ_ZRZY'as yw_type,
          a.data_version,
          a.rg_code,
          a.rg_name,
          'tdzy_gd' as zb_code,
          '土地资源_耕地' as zb_name,
          sum(GD) as zb
    from V_NPCS_ODS_GH_ZRZY_TDZY  a
   where a.yw_type  LIKE 'GZ_ZRZY_NB_TDZY%' ---- 数据来源于汇总表
     AND a.xm_code IN ('nms')
   group by
             a.year,
             a.date_year,
             a.month,
             a.data_version,
             a.rg_code,
             a.rg_name
            )
    

      select "DATA_ID","YEAR","DATE_YEAR","MONTH","YW_TYPE","DATA_VERSION","RG_CODE","RG_NAME","ZB_CODE","ZB_NAME","ZB" from tdzy_hj
      union all
       select "DATA_ID","YEAR","DATE_YEAR","MONTH","YW_TYPE","DATA_VERSION","RG_CODE","RG_NAME","ZB_CODE","ZB_NAME","ZB" from  tdzy_gd
         
  • 查询表一
    截屏20260112 09.28.05.png
  • 视图预览结构,发现精度丢失
    截屏20260112 09.30.59.png
回答 0
暂无回答
扫一扫
联系客服