近期在将数据从MySQL迁移到达梦数据库的时候,出现报错提示:列长度超出定义。
搜索达梦相关问答和技术资料之后,终于找到原因——达梦存放不下mysql迁移过来的字符串(达梦底层以字节单位存储,mysql是以字符,迁移到达梦会出现varchar/char长度不够的问题)
在早期版本8.1.3.162之前,通过设置length_in_char=1来进行规避,但是在8.1.3.162版本之后,取消了此参数,达梦底层现在默认字节单位存储,mysql是以字符,所以会出现问题。
我的解决方式通过 SQLark 百灵连接,自动把源库的字段varchar(x)映射成目的库的varchar(N char),可以一键解决这个问题。
在这里推荐一下SQLark,它提供的导出评估报告和自动规划表空间等功能,使用起来非常方便。 这里附上下载链接:www.sqlark.com
在选择迁移范围/配置环节,点击当前生效映射规则,可查看正在应用的映射规则,SQLark 提供系统默认字段映射规则和自定义字段映射规则。
SQLark 内置了 2 套基于达梦专家经验的默认字段映射规则 (Oracle 和 MySQL),自动转换迁移到达梦的表字段类型,这些规则会自动应用于数据迁移过程中。系统默认规则不可修改。
SQLark 支持对现有的自定义规则进行编辑或新增规则,操作步骤如下:
此外,SQLark 提供以下配置项:
文章
阅读量
获赞