`
spqin
  • 浏览: 2878 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

oracle 学习笔记 varchar2

阅读更多

1、varchar2最大可以存储4000个字节,也就是最大只能写成varchar2(4000);

 

2、创建表

create table T_TEST

(

  ID            VARCHAR2(32) not null,

  TEST_VARCHAR2 VARCHAR2(4000),

  USERNAME      VARCHAR2(6)

)

 

3、向TEST_VARCHAR2 字段插入2000个汉字(多加一个字母就会报错),由于字数过篇幅长,这里省略部分字符。

insert into t_test

  (id, test_varchar2)

values

  ('2',‘这里写入2000个中文汉字’)

 

4、查询长度和字节长度

select length(test_varchar2),lengthb(test_varchar2) from t_test ;


 

5、插入4000个字母,再次查询长度和字节长度



 

结论,varchar2 能存储 2000个汉字和4000个字母。

 

6、网上搜到说一个汉字站三个字节,这与数据库的字符编码有关,我本地使用的是GBK,16位,一个汉字站两个字节,若使用utf-8,32位 则会出现一个汉字占3个字节(此处为做试验,这里引入参考文章的路径http://a498740995.iteye.com/blog/1610172)

 

7、扩展ORACLE nvarchar2和varchar2的区别

 
   1、NVARCHAR2中存储中文字时,一个中文字当一个字符来处理
      NVARCHAR2(10)是可以存进去10个汉字的,如果用来存英文也只能存10个字符。
   2、而VARCHAR2中一个中文字当两个字符来处理
      VARCHAR2(10)的话,则只能存进5个汉字,英文则可以存10个

     Oracle中nvarchar2和varchar2的共同点:
     不定长存储,当存储信息长度小于指定的长度,那么就已实际存入的长度为准这一点不像varchar这种定长存储那样浪费空间,比如varchar 指定是10个字符,那么存入5个字符的时候,他会自动填充空格来补齐以达到指定的长度


 

  • 大小: 9.1 KB
  • 大小: 9.6 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics