mysql迁移达梦,问题记录
8、DATE_FORMAT()改为TO_CHAR(),'%Y-%m-%d %H:%i' 改为 'YYYY-MM-DD HH24:MI'HH后面带24表示24小时制,不带则是12小时制,12小时制需要在最后面加上AM/PM 如:'YYYY-MM-DD HH:MI:SS AM'13、ocr.enter_time >= #{query.enterTime[0]}改为TRUNC(ocr.enter_tim
A、迁移工具
B、sql修改
1. dm.jdbc.driver.DMException: 仅当指定列列表,且SET IDENTITY_INSERT为ON时,才能对自增列赋值
去除表中主键自增设置,由mybatis设置主键。
sql批量刷,查询表,然后执行批量去除主键自增:
select distinct a.Table_Name, a.column_name,
a.data_type as column_type,
'ALTER TABLE "模式"."' || a.Table_Name || '" DROP IDENTITY ;' AS drop_identity_sql
from all_tab_columns a
where a.owner='模式' and a.column_name ='id' order by a.column_id;
2. 无效的列名[2]
sql语句双引号,改为单引号
3、自命值的字段用单引号,双引号会识别为字段,直接报错找不到字段
如:select id,file_name,pid,’folder' AS file_type,
4、达梦数据库不识别CAST这种语法,可尝试ROUND函数
CAST(SUM(top1.is_clear)/count( top1.id ) * 100 as DECIMAL(10, 2)) as clearanceRate
注意:达梦要把字段转为DECIMAL,要不然算不出来,一直是0
ROUND((CAST(SUM(top1.is_clear) AS DECIMAL(10,2)) / CAST(COUNT(top1.id) AS DECIMAL(10,2)) * 100), 2) AS clearanceRate,
5、达梦数据库日期加减法与其他的不一样,mysql等可以用INTERVAL,达梦需要用DATEADD
(ton.promise_deal_date+ INTERVAL #{query.dateNum} DAY > ton.close_date )
(DATEADD(DAY, #{query.dateNum}, ton.promise_deal_date) > ton.close_date )
6、mysql查询时表名上有``需要去掉
7、NOW()改为SYSDATE
8、DATE_FORMAT()改为TO_CHAR(),'%Y-%m-%d %H:%i' 改为 'YYYY-MM-DD HH24:MI' HH后面带24表示24小时制,不带则是12小时制,12小时制需要在最后面加上AM/PM 如:'YYYY-MM-DD HH:MI:SS AM'
9、DATE_ADD(NOW(), INTERVAL 15 MINUTE)添加15分钟改为SYSDATE + INTERVAL '15' MINUTE
10、limit 20 分页改为 FETCH FIRST 20 ROWS ONLY
11、IFNULL(a,b)改为NVL(a,b)
12、model字段名要加上双引号,如:"wc"."model"
13、ocr.enter_time >= #{query.enterTime[0]}改为TRUNC(ocr.enter_time) >= #{query.enterTime[0]}。TRUNC 函数:TRUNC 函数会将日期时间截断到日期部分,忽略时间部分。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)