【DM版本】:1-2-84-21.10.21-149328-10032-ENT
【操作系统】:win10
使用达梦数据库存储TEXT或者CLOB大文本字段的时候,内部存储复杂的JSON数据,通过达梦数据管理工具查看存储的JSON数据没有问题。查询的时候,使用“zorm.CustomDriverValueMap[“*dm.DmClob”] = CustomDMText{} 实现CustomDriverValueConver接口,扩展自定义类型,例如 达梦数据库text类型,映射出来的是dm.DmClob类型,无法使用string类型直接接收”的方法,获取的字符串的长度在大于15000左右以上时,JSON数据中间会有部分缺失。数据长度小于15000字符时没有问题。
当前使用的依赖都是最新版本,也安装了达梦官方最新的数据库(1-2-84-21.10.21-149328-10032-ENT)进行测试。依然产生同样的问题
gitee.com/chunanyong/dm v1.8.3
gitee.com/chunanyong/zorm v1.5.1
如下图,输出了数据长度进行查看
可以看到,当长度小于15000时,读取生成的字符串长度会比原clob字段长度略微大一些。当大于15000之后,读取的字符串长度与clob的长度一样。
如下图,第一行是直接从达梦数据库管理工具中查询复制出来的TEXT字段的数据,长度是17236。第二行是程序查询转换后输出的string的值,明显看到缺失了一部分。
仔细对比两行数据,发现如第三行所示缺失的部分