---
title: 查看SQL兼容性并查看不兼容SQL语句对应的功能点报错
description: "由于实践所用的RuoYi应用涉及到100+条SQL语句，语句数量较多，本实践仅选取3类不兼容的问题（共涉及4条SQL语句）进行改造实践。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevps/portingadvisor/demo/ruoyi-21-0010.html
sourcePath: /source/zh/kunpengdevps/portingadvisor/demo/ruoyi-21-0010.html
indexId: cde210c625bd994cd4f0e9ff73087ee4bbc139b41231eaa524b594195ac2b29c62
---
# 查看SQL兼容性并查看不兼容SQL语句对应的功能点报错

由于实践所用的RuoYi应用涉及到100+条SQL语句，语句数量较多，本实践仅选取3类不兼容的问题（共涉及4条SQL语句）进行改造实践。

| 源文件 | 来源 | SQL ID | DevKit工具提取出的不兼容的SQL语句 | 不兼容类型 |
| --- | --- | --- | --- | --- |
| ruoyi\-system/src/main/resources/mapper/system/SysUserOnlineMapper.xml | mapper xml | saveOnline | replace into sys\_user\_online(sessionId, login\_name, dept\_name, ipaddr, login\_location, browser, os, status, start\_timestamp, last\_access\_time, expire\_time) values (A, A, A, A, A, A, A, A, A, A, A); | DM8不支持replace into的用法 |
| ruoyi\-system/src/main/java/com/ruoyi/system/mapper/SysNoticeMapper.xml | mapper xml | selectNoticeById | select notice\_id, notice\_title, notice\_type, cast(notice\_content as char) as notice\_content, status, create\_by, create\_time, update\_by, update\_time, remark from sys\_notice where notice\_id = 1; | DM8中的cast函数不支持将BLOB类型转换成字符串类型 |
| ruoyi\-system/src/main/java/com/ruoyi/system/mapper/SysNoticeMapper.xml | mapper xml | selectNoticeList | select notice\_id, notice\_title, notice\_type, cast(notice\_content as char) as notice\_content, status, create\_by, create\_time, update\_by, update\_time, remark from sys\_notice where notice\_title like 'A'('%', 'A', '%') and notice\_type = 'A' and create\_by like 'A'('%', 'A', '%'); | DM8中的cast函数不支持将BLOB类型转换成字符串类型 |
| ruoyi\-generator/src/main/resources/mapper/generator/GenTableMapper.xml | mapper xml | selectDbTableList | select table\_name, table\_comment, create\_time, update\_time from information\_schema.tables where table\_schema = (select database()) AND table\_name NOT LIKE 'qrtz\\_%' AND table\_name NOT LIKE 'gen\\_%' AND table\_name NOT IN (select table\_name from gen\_table) AND lower(table\_name) like lower(concat('%', 'A', '%')) AND lower(table\_comment) like lower(concat('%', 'A', '%')) order by create\_time desc; | DM8没有information\_schema等MySQL自带的数据库表 |


上述表格中“DevKit工具提取出的不兼容的SQL语句”来源于DevKit工具迁移结果页面的“SQL迁移报告 > 查看详情”。以上述表格中最后一条SQL为例，单击“查看详情”，如下图：


查看详情中，找到“id”为“selectDbTableList”的语句，鼠标悬浮到黄色波浪线上，即可查看工具提取拼接后的SQL语句。单击“复制SQL提取语句”可以将提取出的SQL语句快速复制下来。


#### 查看SQL兼容性问题

1. 打开桌面上的DM管理工具，新建连接，填写数据库连接信息，测试连接。如下图所示：
2. 新建查询，并修改当前查询窗口的模式为“ry”。
3. 将上方表格中的SQL语句复制粘贴至查询窗口中，单击绿色箭头执行语句，查看报错。


#### 查看3类不兼容问题导致的RuoYi功能点报错

- DM8不支持replace into的用法。
  功能点报错触发方式：登录RuoYi后，后台报错。如下图所示：

- DM8中的cast函数不支持将BLOB类型转换成字符串类型。
  功能点报错触发方式：启动应用，登录RuoYi网页，单击“系统管理 > 通知公告”。如下图所示：

- DM8没有information_schema等MySQL自带的数据库表。
  功能点报错触发方式：登录RuoYi后，单击“系统工具 > 代码生成 > 导入”。如下图所示：
