【YashanDB知识库】YMP迁移达梦时,报错:查询出现异常

本文内容来自YashanDB官网:https://yashandb.com/newsinfo/7849022.html?templateId=1718516
【标题】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开发)
【影响范围】所有版本
【修复版本】-

posted @   YashanDB  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· RFID实践——.NET IoT程序读取高频RFID卡/标签
点击右上角即可分享
微信分享提示