MySql切换到达梦数据库,各种问题解决记录

参考官方文档:
https://eco.dameng.com/document/dm/zh-cn/sql-dev/practice-func.html

1. 关键字导致的报错:如ref,comment,top,domain等

Error -2007: 第 1 行, 第 117 列[ref]附近出现错误: 
语法分析出错

解决方案:修改关键字即可

2. 查询列包含大字段,导致的报错

Error -2685: 第42 行附近出现错误:
试图在blob或者clob列上排序或比较	

解决方案:需要将数据库参数ENABLE_BLOB_CMP_FLAG设置为1,
之后数据库便支持查询列,以及DISTINCT、ORDER BY、分析函数和集函数支持对大字段进行处理。

3. convert和using函数不支持导致的报错

Error -2007: 第 32 行, 第 85 列[using]附近出现错误: 

解决方案:
找到错误语句:convert(e.expert_name using gbk) asc
该功能是为了按照拼音首字母排序,
替换为 NLSSORT(e.expert_name,‘NLS_SORT = SCHINESE_PINYIN_M’)即可解决。

4. where条件后的字段值使用双引号导致

Error -2111: 第36 行附近出现错误:
无效的列名[topic]

解决方案:
字段名是小写的情况下,字段值必须使用单引号,因为双引号会把值当成列名。所以需要把双引号改为单引号,
如:and d.data_type=“topic” 改为 ‘topic’

5. 自增主键导致,表设置了主键自增,但是insert语句又设置了主键值

Error -2723: 仅当指定列列表,且SET IDENTITY_INSERT为ON时,才能对自增列赋值

解决方案:
需要考虑是否分表,如果是分表,去掉表的自增;如果是普通单表,可以去掉自制定的主键值。

注意:如果想直接获取自增主键ID的值,可以在sql方法上加上一下两个属性:

	useGeneratedKeys="true" keyProperty="id" 

在这里插入图片描述

6. 使用单引号修饰查询列别名导致

Error -2007: 第 4 行, 第 220 列[']附近出现错误: 
语法分析出错

解决方案:查询列可以用双引号修饰,也可以不用引号修饰,但不能使用单引号,因为单引号是用来修饰字段值的
如b.notice_student_read_id AS ‘notice_read_id’ 必须改为 b.notice_student_read_id AS notice_read_id

7. 日期运算语法不支持date_sub&date_add导致

Error -2007: 第 7 行, 第 99 列[7]附近出现错误: 
语法分析出错

解决方案:
获取七天前的时间:date_sub(now(),interval 7 day ),
获取30分钟后的时间:date_add(NOW() ,INTERVAL 30 minute)
替换为 ADD_DAYS(GETDATE(), -7) ,sysdate + 30 / 24 / 60

8. group_concat语法不支持导致

Error -2207: 第24 行附近出现错误:
无法解析的成员访问表达式[group_concat]

解决方案:
group_concat(r.role_name)替换为 CONCAT (r.role_name,‘,’)

9. 修改语句的列重复导致

Error -2114: 第77 行附近出现错误:
重复的列名[invalid] 

解决方案:去除多余的查询列 invalid 即可

10. 日期转换格式语法不支持导致

Error -2007: 第 5 行, 第 128 列[10]附近出现错误: 
语法分析出错

解决方案:
DATE_FORMAT(start_time, ‘%Y-%m-%d %H:%i’)
替换为 TO_CHAR(start_time, ‘YYYY-MM-DDHH24:MI’) 即可

11. 日期运算DATEDIFF语法不支持导致

解决方案:
DATEDIFF (now(), send_time) <= 60
替换为 sysdate - send_time <= 60

12.模糊查询like语法不支持导致

Error -2007: 第 7 行, 第 53 列["]附近出现错误: 
语法分析出错

解决方案:
AND name LIKE “%”‘宁海’“%”
替换为 AND regexp_like(name,‘宁海’)

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值