Oracle中NVARCHAR2与VARCHAR2的差别

NVARCHAR2在计算长度时和字符集相关的:

比如数据库是中文字符集时以长度10为例,

1、NVARCHAR2(10)是能够存进去10个汉字的。假设用来存英文也仅仅能存10个字符。

2、而VARCHAR2(10)的话,则仅仅能存进5个汉字,英文则能够存10个。

注:二者字节上线都是4000。注意大小设置不要溢出。

时间: 2024-10-01 07:48:19

Oracle中NVARCHAR2与VARCHAR2的差别的相关文章

Oracle中NVARCHAR2字符集不匹配问题

Oracle中在做字符匹配时 遇到 NVARCHAR2 类型时报错,提示 字符集不匹配. 对使用 NVARCHAR2 的地方,需要对字段进行字符转换,加上 to_char(nvarchar2 字段) 即可. 例如: SELECT substr(bm.matnr, 3) wlbm, ms.maktx wlms, bm.meins jldw, bm.matkl wlz , bm.normt gybzms,bm.laeda gxsj,(case to_char(trim(bm.lvorm)) when

oracle中nvarchar2字符集不匹配

oracle当多表union时遇到nvarchar2类型时报错 字符集不匹配对使用nvarchar的地方,加上 to_char( nvarchar 的变量或字段 ) 如:select to_char(name),price from aa union allselect  to_char(name),price from bb 3张表aa,bb,cc都有 name price 字段 查询价格最高的前3位姓名 select * from(select to_char(name),price fro

Oracle 中UNDO与REDO的差别具体解释

一 为了更清楚的看出2者差别,请看下表: UNDO                                                                   REDO Record of How to undo a change How to reproduce a change Used for Rollback, Read-Consistency Rolling forward DB Changes Stored in Undo segments Redo log

Oracle 中varchar 、 varchar2 、nvarchar2 有什么区别?

如果oracle的字符编码采用GBK,那么一个汉字占两个字节,可如果使用的是UTF-8那么一个汉字占三个字节.大部分情况下使用varchar2类型,可以保证更好的兼容性. GBK字符集下:varchar2(10)可以存5个中文,可以存10个英文.但是使用length函数获取长度实际上获取的是字符的个数,即:存5个中文的长度为5 , 10个英文的长度为10 . nvarchar2(10)最多可一存10个中文,最多也只能存10个英文,字符长度也是字符个数,即无论是中文还是英文都是10 . varch

oracle中varchar、varchar2、char和nvarchar的区别

1.char char的长度是固定的,比如说,你定义了char(20),即使你你插入abc,不足二十个字节,数据库也会在abc后面自动加上17个空格,以补足二十个字节: char是区分中英文的,中文在char中占两个字节,而英文占一个,所以char(20)你只能存20个字母或10个汉字. char适用于长度比较固定的,一般不含中文的情况 2.varchar/varchar2 varchar是长度不固定的,比如说,你定义了varchar(20),当你插入abc,则在数据库中只占3个字节. varc

ORACLE nvarchar2和varchar2的区别

ORACLE nvarchar2和varchar2的区别 1.NVARCHAR2中存储中文字时,一个中文字当一个字符来处理 NVARCHAR2(10)是可以存进去10个汉字的,如果用来存英文也只能存10个字符. 2.而VARCHAR2中一个中文字当两个字符来处理 VARCHAR2(10)的话,则只能存进5个汉字,英文则可以存10个 Oracle中nvarchar2和varchar2的共同点: 不定长存储,当存储信息长度小于指定的长度,那么就已实际存入的长度为准这一点不像varchar这种定长存储

oracle中int类型和number类型区别

INT类型是NUMBER类型的子类型.下面简要说明:(1)NUMBER(P,S)该数据类型用于定义数字类型的数据,其中P表示数字的总位数(最大字节个数),而S则表示小数点后面的位数.假设定义SAL列为NUMBER(6,2)则整数最大位数为4位(6-2=4),而小数最大位数为2位.(2)INT类型当定义整数类型时,可以直接使用NUMBER的子类型INT,顾名思义:INT用于整型数据. oracle本来就没有int类型,为了与别的数据库兼容,新增了int类型作为number类型的子集.int类型只能

oracle中varchar,varchar2,nvarchar,nvarchar2的区别

--varchar,varchar2 联系: 1.varchar/varchar2用于存储可变长度的字符串 比如varchar(20),存入字符串'abc',则数据库中该字段只占3个字节,而不是20个字节 2.size 的最大值是 4000,而最小值是 1,其值表示字节数,比如 varchar(20)表示最大可以存放20个字节的内容 区别: 1.varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节: 2.VARCHAR2

Oracle中varchar,varchar2,nvarchar,nvarchar2的区别及其它数据类型描述

--varchar,varchar2 联系: 1.varchar/varchar2用于存储可变长度的字符串 比如varchar(20),存入字符串'abc',则数据库中该字段只占3个字节,而不是20个字节 2.size 的最大值是 4000,而最小值是 1,其值表示字节数,比如 varchar(20)表示最大可以存放20个字节的内容 区别: 1.varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节: 2.VARCHAR2