Oracle中的CHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2

(1)Oracle中CHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2

URL:http://blog.163.com/blade_ralf/blog/static/89741687200962064628485/

 

 

Oracle   2009-07-20 18:46   


在Oracle中CHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2这五种类型的区别

1.CHAR(size)和VARCHAR(size)的区别

    CHAR为定长的字段,最大长度为2K字节;

    VARCHAR为可变长的字段,最大长度为4K字节;

2.CHAR(size)和NCHAR(size)的区别

    CHAR如果存放字母数字占1个字节,存放GBK编码的汉字存放2个字节,存放UTF-8编码的汉字占用3个字节;

    NCHAR根据所选字符集来定义存放字符的占用字节数,一般都为2个字节存放一个字符(不管字符或者汉字)

3.VARCHAR(size)和VARCHAR2(size)的区别

    在现在的版本中,两者是没有区别的;最大长度为4K字节;推荐使用VARCHAR2;

4.VARCHAR2(size)和NVARCHAR2(size)的区别

    最大长度为4K字节,区别同CHAR与NCHAR的区别;(如果数据库字符集长度是2,则NVARCHAR2最大为2K)

5.共同特性

    当执行insert的时候,插入的值为'',则转变成null,即insert ... values('') <=> insert ... values(null)

    搜索的条件须用where xx is null

6.例子

    比如有一个性别字段,里面存放“男,女”的其中一个值,两种常用选择

        CHAR(2)    和 NCHAR(1)

 

 

(2)浅谈Oracle中的CHAR与NCHAR数据类型

URL:http://blog.csdn.net/dlxu/archive/2008/06/25/2584661.aspx


       CHAR与NCHAR在Oracle数据库是常用的类型,不过两种数据类型是互相不兼容的,这里大概简要谈一下这2种数据类型吧。

在Oracle中,CHAR类型是一种固定长度的字符串类型,最大长度是2000个byte,在这里要注意了,是2000个byte,并不是2000个字符的意思。1个字符在Oracle中可能是1个byte到4个byte不等,这个要看数据库的设置了。这个是数据库中有一个参数NLS_LENGTH_SEMANTICS来决定的。CHAR类型有一个特点,就是字符长度总是固定的,也就是说,如果你声明了一个COLUMN类型为CHAR(10),如果你只插入了1个字符,那么系统也会自动在这个字符的右边补上9个空格,Oracle的CHAR类型中,补空格是在右侧补的。但是如果你插入了11个字符,那么就会系统出错,而不会自动截成10个字符。

 

       NCHAR数据类型可能不是经常见到,不过在许多数据库设计中也有了。NCHAR数据类型是专为UNICODE字符而设计的,而且只能插入UNICODE字符串,NCHAR也是最大长度为2000个byte,不过每个字符占多少个byte,是由数据库的国际字符集决定的。同样的,如果插入字符不足定义的长度,比如NCHAR(10)类型中只插入了1个字符,系统会自动在右侧补充9个空格

 

       NCHAR和CHAR之间是不能直接互相兼容的,而是要通过Oracle的函数或者语法进行转换,比如说从NCHAR转成CHAR是要用TO_CHAR函数进行转换,而CHAR转换为NCHAR,比如说'ABCDE'这个CHAR字符串,则要通过N'ABCDE'来进行表示,也就是说前面要有一个N这个特殊字符,表示是NCHAR类型。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值