oracle中varchar2(byte)、varchar2(char)、nvarchar2()区别
类别:数据库 浏览量:746
时间:2017-3-26 oracle中varchar2(byte)、varchar2(char)、nvarchar2()区别
oracle中varchar2(byte)、varchar2(char)、nvarchar2()区别一、varchar2(byte)
就是默认的表示方式,比如我们写成:varchar2(100),就相当于varchar2(100 byte),表示最大字节数是100,该字段最多能容纳100个字节,强调空间大小。由于我们描述的是字节,因此,保存汉字等字符时,就要小心了。如果你的数据库用的是GBK编码,那么一个汉字将占用2个字节,最多能存50个汉字,如果你的数据库用的是UTF8编码,那么一个汉字将占用3个字节,最多能存33个汉字。
二、varchar2(char)
假设我们写成varchar2(100 char),那么无论是数字、字母、汉字,都看成一个字符,最多写100个,当然,汉字越多,占用的空间越大,同样遵循上边的数据库编码原则。例如:存入一个汉字,底层占2或3个字节,存入一个字母,占1个字节,不是1个字母或数字也占2或3个字节!
三、nvarchar2()
没有byte、char之分,类似于varchar2(char),只不过nvarchar2()屏蔽了数据库编码,无论是何种编码,nvarchar2()中一个汉字都占两个字节。
四、总结
对于GBK编码的数据库而言,安全的写法为:varchar2(2000 char)、nvarchar2(2000),对于UTF8编码的数据库而言,安全的写法为:varchar2(1333 char)、nvarchar2(2000)。
标签:oracle
您可能感兴趣
- mysql与oracle体系结构(详解MySQL实时同步到Oracle解决方案)
- oracle删除表后怎么清理磁盘空间(Oracle 删除用户和表空间详细介绍)
- oracle和mysql查询所有表(Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍)
- Oracle正则表达式的用法
- mysql的事务隔离级别怎么实现(mysql、oracle默认事务隔离级别的说明)
- SQL Server与Oracle数据类型的对应关系
- oracle中varchar2(byte)、varchar2(char)、nvarchar2()区别
- oracle中decode函数
- oracle恢复删除的表数据
- oracle for update nowait和for update区别
- oracle自定义异常
- php连接oracle(PHP远程连接oracle数据库操作实现方法图文详解)
- MySQL与Oracle数据类型对应关系
- oracle RMAN CONFIGURE配置项
- oracle如何用脚本文件创建表空间(MySQL版oracle下scott用户建表语句实例)
- mysql与oracle如何直接连接(Oracle更换为MySQL遇到的问题及解决)
- 美国数十万加仑牛奶倒下水道怎么回事 原因曝光令人心痛(美国数十万加仑牛奶倒下水道怎么回事)
- 探索中国神秘文字(探索中国神秘文字)
- 重温《蜗居》 宋思明选中海藻为红颜知己,纯属巧合,与爱无关(宋思明选中海藻为红颜知己)
- 越南旅游攻略(越南旅游攻略自由行)
- 成都旅游攻略(成都旅游攻略自由行最佳线路)
- 给儿童吃什么最好(给儿童吃什么最好消化)
热门推荐
- mysql的json格式解析(mysql json格式数据查询操作)
- 使用react生命周期的常见情况(react+ts实现简单jira项目的最佳实践记录)
- laravel 权限管理(修改Laravel自带的认证系统的User类的命名空间的步骤)
- nginx服务器和apache服务器(Nginx vs Apache两大web服务器比较)
- dedecms登录功能(DEDECMS织梦远程附件服务器设置详解)
- dede织梦管理后台密码忘记了(织梦DEDE后台更新了广告而前台没有变化的解决办法)
- docker部署mysql并且自动启动(Docker 部署 Mysql8.0的方法示例)
- js判断对象是否存在
- nginx反向代理spring boot(Nginx+SpringBoot实现负载均衡的示例)
- c#中使用stopwatch统计代码执行时间
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9