A、迁移工具

使用官方SQLark-信创数据库开发,用百灵

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 函数会将日期时间截断到日期部分,忽略时间部分。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐