当前项目为springboot3 + hibernate6 + mysql8.0 , 现要迁移至达梦8,已经通过DM数据迁移工具将表和表数据迁移至达梦8数据库。
达梦8驱动依赖版本:
<dependency>
<groupId>com.dameng</groupId>
<artifactId>DmJdbcDriver8</artifactId>
<version>8.1.4.181</version>
</dependency>
<dependency>
<groupId>com.dameng</groupId>
<artifactId>DmDialect-for-hibernate6.6</artifactId>
<version>8.1.4.93</version>
</dependency>
项目启动查询SQL没啥报错,插入SQL时候报错:
‘Caused by: dm.jdbc.driver.DMException: -3105 JSON value syntax error’
我的URL链接配置:
url:jdbc:dm://xxx:5236/XXX?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&compatibleMode=oracle
jpa:
properties:
hibernate.dialect: org.hibernate.dialect.DmDialect
我是从mysql8迁移到达梦数据库了,如果url配置了compatibleMode=oracle,达梦8是否还需要配置这些参数?
# 兼容mysql
SP_SET_PARA_VALUE(2, 'COMPATIBLE_MODE', 4);
SP_SET_PARA_VALUE(2, 'ORDER_BY_NULLS_FLAG', 2);
SP_SET_PARA_VALUE(2, 'MY_STRICT_TABLES', 1);
如果不配置compatibleMode=oracle,项目中应用了activity8则无法正常启动。
现在很混乱,mysql8迁移至达梦后,达梦8 COMPATIBLE_MODE 参数到底使用什么模式?

查看下你所有数据库版本的手册,里面还有跟json相关参数,较新也有兼容不同数据库的配置选项,如果没有可能没有区分兼容性。

由于不同数据库之间甚至不同版本上都会有很多特性是不一样,不是简单设置COMPATIBLE_MODE就能全部解决,当然如果是MySQL移植过来还是建议配置这个参数兼容对应数据库。
此外您还可以抓一下看报错的具体语句,在客户端工具中能否执行,如果您所用版本没有json的兼容配置,可能要适当调整语法,或者升级数据库版本,从本网站下载或者联系项目支持的技术人员获取都可以。