• oracle中varchar2和nvarchar2的区别


    varchar2(size type),size最大为4000,type可为char或者byte,默认是byte。

    varchar2最多存放4000字节的数据,不管type是char还是byte。所以如果你设置varchar2(4000 char),你可以存入4000个字母,但是不能存入4000个汉字。如果数据库字符集编码是GBK,那么varchar2最多能存放2000个汉字,如果字符集编码是UTF-8,那么则只能最多存放1333个汉字了。

    nvarchar2(size),size最大值为2000,单位是字符,而且不管是汉字还是字母,每个字符的长度都是2个字节。所以nvarchar2类型的数据最多能存放2000个汉字,也最多只能存放2000个字母。并且nvarchar2不同于varchar2,他不受数据库字符集的影响。

    另外如果我们把A1,A2都设为varchar2(4000),并且这两个字段的内容长度都超过了2000字节,那么使用select A1||A2 from table这样的语句时,因为结果超过了4000字节,所以会报错。

    从使用角度来看区别在于:NVARCHAR2在计算长度时和字符集相关的,例如数据库是中文字符集时以长度10为例,则 

    1、NVARCHAR2(10)是可以存进去10个汉字的,如果用来存英文也只能存10个字符,而VARCHAR2(10)的话,则只能存进5个汉字,英文则可以存10个
     2、VARCHAR2可变长度字符域,最大长度可达4000个字符,NVARCHAR2多字节字符集的可变长度字符域,长度随字符集而定,最多为2000个字符或2000个字节

    区别:

    1.nvarchar中字符为中文则一般按2个字节计算,英文数字等按照一个自己计算

    2.nvarchar2中所有字符均按照2个字节计算;

    3.nvarchar2虽然更占空间,但是它有更好的兼容性(推荐使用);

  • 相关阅读:
    1366. Rank Teams by Votes
    1361. Validate Binary Tree Nodes
    1359. Count All Valid Pickup and Delivery Options
    1358. Number of Substrings Containing All Three Characters
    JQuery跳出each循环的方法(包含数组遍历)【转】
    JS数组转字符串(3种方法)【转】
    js的15种循环遍历,你掌握了几种【转】
    js/jQuery获取data-*属性值【转】
    Thinkphp volist 多重循环原样输出数组key值的使用总结【转】
    php 循环【转】
  • 原文地址:https://www.cnblogs.com/weibanggang/p/12800105.html
Copyright © 2020-2023  润新知