Mysql、Oracle的Varchar类型的区别

在工作中,由于之前交接的项目中使用的是Mysql数据库,而在生产环境中,使用的是Oracle数据库,然后相同表结构,测试发现了插入到表时,中文字符超过了字段的长度。查看了Mysql和Oralce的表结构,超过长度的字段类型都是字符类型,Mysql的字段类型是Varchar(2000),Oracle的字段类型是Varchar2(2000)。插入相同中文字符个数为900个,Mysql和Oracle都是UTF-8编码,Mysql环境下没报错,而Orcale环境就爆长度超过。

通过网上查阅资料得知,Mysql5.0以上版本的Varchar(2000)表示的是2000个字符(假设2000都可用,忽略需要存储字符长度信息等),而Oracle的Varchar2(2000)表示的可以存储2000个字节。UTF-8编码下的900个中文字符最少为2700个字节,对于Mysql来说900个字符没超过2000个,不会报错,而对于Oracle来说,2700个字节已经超过了,所以报错长度超过错误。

Mysql的Varchar的详细信息可参考https://www.jb51.net/article/203958.htm

Oracle参考Oracle数据库汉字占几个字节_杨_Zero的博客-CSDN博客_oracle中文占几个字符 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值