为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。 【DM版本】:达梦8,安装包:dm8_20220720_x86_rh7_64_ent.zip 【操作系统】:麒麟V10 【CPU】:x86 【问题描述】*:varchar2(20)存储的中文字符数不够,我理解这个类型起码可以存储20个中文字符,然而在我输入6个以上的中文字符后,保存就失败了,报参数不兼容。 以下是我的数据库参数: 下图是实际的效果:
如果你数据库参数char类型以字符单位,varchar2(20)可以存20个汉字,但是你实例参数不是,而是以字节为单位,字符集是uft8,理论3个字节1个汉字,所以最多存6个汉字
但如果正常超出长度应该提示:-6169: 长度超出定义才对(如果是设置了COMPATIBLE_MODE=4,兼容mysql不会提示该报错,会自动截取)。 所以最好把您的数据库配置文件dm.ini也贴出来看看。
如果你数据库参数char类型以字符单位,varchar2(20)可以存20个汉字,但是你实例参数不是,而是以字节为单位,字符集是uft8,理论3个字节1个汉字,所以最多存6个汉字
但如果正常超出长度应该提示:-6169: 长度超出定义才对(如果是设置了COMPATIBLE_MODE=4,兼容mysql不会提示该报错,会自动截取)。
所以最好把您的数据库配置文件dm.ini也贴出来看看。