(ORCAL迁移适配DM达梦数据库问题)
问题1:TEXT OR CLOB类型字段存超长文本Java驱动获取数据报错:index out of range
【DM版本】: 8
【问题描述】:数据库创建TEXT类型字段,存一个长文本,Java驱动获取该字段的值报错。存短文本不会报错。
Error attempting to get column '**' from result set. Cause: java.lang.RuntimeException: index out of range
【解决方案】:DM在线服务平台
更换不同版本的驱动即可解决。
CLOB换成
这是不同版本驱动测试结果:
8.1.1.193:正常
8.1.2.79:index out of range
8.1.2.141:正常
8.1.2.192:网络通信异常,Cannot assign requested address: connect
8.1.3.62:无效的模式名[test]
问题2:达梦数据库查询时clob字段无法转换的问题
【解决方案】:
在数据库连接加上参数clobAsString=true,例如 jdbc:dm://xxx:5236/xx?clobAsString=true
问题3:达梦数据库查询关键字失败问题
【问题描述】:java实体使用Index关键字,通过mybatisPlus中内置selectList方法报错
### Error querying database. Cause: dm.jdbc.driver.DMException: 第 1 行, 第 192 列[index]附近出现错误:
语法分析出错
### SQL: ******
### Cause: dm.jdbc.driver.DMException: 第 1 行, 第 192 列[index]附近出现错误:
语法分析出错
【解决方案】:
在JAVA实体字段上增加 @TableField(value = ““INDEX””)
/**
* 排序号
*/
@TableField(value = "\"INDEX\"")
private Integer index;