最近的几个项目需要国产化,由于是第一次使用达梦数据库,在迁移的过程中出现了“列[xx]长度超出定义”的报错,经查发现是因为达梦数据库以字节为单位。若是 gb18030 字符集,varchar(2) 才可以存一个汉字;若是 UTF-8 字符集,varchar(3) 才可以存一个汉字。由于报错的地方比较少,我把报错的字段长度改大之后,导入成功了。
在导入第二个数据库的时候,报错的字段特别多,发现挨个改字段大小太不实际了,后来查了一下官方资料,找到了解决方法,需要重新初始化达梦数据库实例,在“初始化参数”中,勾选“VARCHAR类型以字符为单位”。
初始化实例之后,重新导入这两个数据库均没有报错,完美解决