为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DB Version: 0x7000c
【操作系统】:linux
【CPU】:x86
【问题描述】*:使用kettle迁移数据,精度丢失,原因是
dm.jdbc.driver.DmdbResultSetMetaData获取不了正确的精度 java.sql.ResultSetMetaData#getPrecision
补充信息,达梦数据库在创建视图时,会出现精度丢失
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
在视图语句中添加cast
-- YONDIFDB."v_etl_gzdp_zrzy_2" source
create or replace view v_etl_gzdp_zrzy_2 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,
cast(sum(HJ_FSD+HJ_SD) AS DECIMAL(10,2)) 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,
cast(sum(GD) AS DECIMAL(10,2)) 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

你好 可以尝试下替换匹配的驱动能解决的吗,另外日志建议提供详细一点 谢谢