YMP迁移达梦时,报错:查询出现异常

99 阅读1分钟

【标题】YMP迁移达梦时,报错:查询出现异常

【问题分类】数据导入导出

【关键字】数据同步,YMP,评估,数据迁移,SQL报错

【问题描述】YMP迁移达梦时,在评估阶段出现报错:(查询出现异常,执行SQL为:......)
上传中...转存失败,建议直接上传图片文件
错误日志为:YMP-ERROR-2024-11-28-0.log

【问题原因分析】查询达梦数据库数据字典出现报错,需修改达梦参数配置,或者在YMP中使用HINT。

【解决/规避方法】

达梦执行以下SQL,修改系统参数配置:

-- 达梦执行以下参数修改

sp_set_para_value(1, 'VIEW_FILTER_MERGING', 29);

-- 或者在业务sql中使用以下hint:

SELECT /+VIEW_FILTER_MERGING(29)/

sel.OWNER,

sel.NAME,

sel.TYPE,

sel.STATUS,

sel.TABLE_NAME

FROM

(

SELECT

a.OWNER,

a.INDEX_NAME AS NAME,

'INDEX' AS TYPE,

obj.STATUS,

a.TABLE_NAME

FROM

ALL_INDEXES a

JOIN

ALL_OBJECTS obj

ON

a.OWNER = obj.OWNER

AND a.TABLE_NAME = obj.OBJECT_NAME

WHERE

a.owner IN ('GDP7SZGCH_LH')

AND obj.OBJECT_TYPE = 'TABLE'

AND a.INDEX_TYPE != 'VIRTUAL'

AND NOT (

(a.TABLE_NAME LIKE 'BM$_%'

OR a.TABLE_NAME LIKE 'BMJ$_%'

OR a.TABLE_NAME LIKE 'MDRT$_%'

OR a.TABLE_NAME LIKE 'MLOG$_%'

OR

 a.TABLE_NAME LIKE 'MTAB$_%'

OR a.TABLE_NAME LIKE 'MVIEW$_%'

OR a.TABLE_NAME LIKE 'MTRG$_%'

OR a.TABLE_NAME LIKE 'STAT$_%')

OR

(a.TABLE_NAME LIKE '%$ALOG'

OR a.TABLE_NAME LIKE '%$AUX'

OR a.TABLE_NAME LIKE '%$DAUX'

OR a.TABLE_NAME LIKE '%$RAUX'

OR

 a.TABLE_NAME LIKE '%$ROT'

OR a.TABLE_NAME LIKE '%$UAUX')

)) sel

JOIN

ALL_IND_COLUMNS col

ON

sel.OWNER = col.INDEX_OWNER

AND sel.NAME = col.INDEX_NAME

AND sel.TABLE_NAME = col.TABLE_NAME

重新进行迁移即可。(已反馈YMP开发)

【影响范围】所有版本

【修复版本】-