`

Oracle中NVARCHAR2和VARCHAR2的区别

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

1、NVARCHAR2(10)是可以存进去10个汉字的,如果用来存英文也只能存10个字符。

2、而VARCHAR2(10)的话,则只能存进5个汉字,英文则可以存10个

CHAR固定长度字符域,最大长度可达2000个字节    
  NCHAR多字节字符集的固定长度字符域,长度随字符集而定,最多为2000个字符或2000个字节    
  VARCHAR2可变长度字符域,最大长度可达4000个字符    
  NVARCHAR2多字节字符集的可变长度字符域,长度随字符集而定,最多为4000个字符或4000个字节
何时该用CHAR,何时该用varchar2?
  CHAR与VARCHAR2是一对矛盾的统一体,两者是互补的关系.
  VARCHAR2比CHAR节省空间,在效率上比CHAR会稍微差一些,即要想获得效率,就必须牺牲一定的空间,这也就是我们在数据库设计上常说的‘以空间换效率’。
  VARCHAR2虽然比CHAR节省空间,但是如果一个VARCHAR2列经常被修改,而且每次被修改的数据的长度不同,这会引起‘行迁移’(Row Migration)现象,而这造成多余的I/O,是数据库设计和调整中要尽力避免的,在这种情况下用CHAR代替VARCHAR2会更好一些。
.nvarchar/nvarchar2

nvarchar和nvarchar2是长度不固定的

nvarchar不区分中英文,比如说:你定义了nvarchar(20),你可以存入20个英文字母/汉字或中英文组合,这个20定义的是字符数而不是字节数

nvarchar2基本上等同于nvarchar,不同在于nvarchar2中存的英文字母也占两个字节

nvarchar/nvarchar2适用于存放中文

分享到:
评论

相关推荐

    oracle中varchar2(byte)和varchar2(char).doc

    ### Oracle中的VARCHAR2(BYTE)与VARCHAR2(CHAR)区别详解 #### 一、引言 在Oracle数据库中,`VARCHAR2`是最常用的字符数据类型之一,用于存储变长的字符串。然而,在定义`VARCHAR2`类型时,可以选择指定长度为`BYTE`...

    varchar 和varchar2之间的联系和区别

    总的来说,虽然`VARCHAR`和`VARCHAR2`在名称上有一定的相似性,但在实际应用中,`VARCHAR2`因其更长的最大长度、更好的空格处理机制以及更高的兼容性,在Oracle数据库中得到了更广泛的应用。理解这些细微的区别,...

    浅析Oracle中char和varchar2的区别 电脑资料.docx

    Oracle 中 char 和 varchar2 的区别 Oracle 中 char 和 varchar2 是两种常用的字符串数据类型,它们之间的区别是很多开发者经常忽视的。下面我们将详细分析 Oracle 中 char 和 varchar2 的区别。 首先,char 是定...

    oracle char,varchar,varchar2的区别和使用方法

    ### Oracle CHAR, VARCHAR, VARCHAR2 的区别与使用方法 在 Oracle 数据库中,字符串类型是极为常见的数据类型之一,主要用于存储文本数据。其中最常用的三种类型包括:`CHAR`, `VARCHAR`, 和 `VARCHAR2`。这三种...

    char,varchar以及varchar2的区别

    今天我们将深入探讨三种常见的字符串类型:`char`、`varchar`和`varchar2`,它们在不同的数据库系统中有着微妙的区别。 1. **char类型** `char`是一种固定长度的字符串类型,无论实际存储的数据是否填满指定长度,...

    浅析Oracle中char和varchar2的区别

    至于`VARCHAR2`和`NVARCHAR2`的区别,`NVARCHAR2`是Unicode字符串类型,可以存储不同语言的字符,而`VARCHAR2`则只支持数据库的默认字符集。如果你需要处理多语言数据或者需要更广泛的字符支持,`NVARCHAR2`是更好的...

    oracle中varchar与date的转换,number与varchar的转换.pdf

    在 Oracle 中,数据类型的转换是非常常见的操作,本文将详细介绍 Oracle 中的 varchar 和 date 的转换、number 和 varchar 的转换。 一、varchar 和 date 的转换 在 Oracle 中,varchar 类型用于存储字符串数据,...

    oracle和db2的区别

    ### Oracle与DB2的主要区别 本文旨在探讨Oracle与DB2这两种主流关系型数据库管理系统(RDBMS)之间的关键差异。Oracle由甲骨文公司开发,而DB2则由IBM推出。两者均广泛应用于企业级环境,提供了强大的数据管理能力。...

    TiDB&MySql&Oracle介绍及区别

    总结:TiDB、MySQL 和 Oracle 各具特色,TiDB 适合需要高扩展性和 HTAP 场景,MySQL 更适合中小型 Web 应用,而 Oracle 则是大型企业级应用的首选。选择哪种数据库应根据具体业务需求和技术背景来决定。

    GP数据库表结构转mysql库、oracle库 varchar类型字段长度批量处理excel_MYSQL_oracle_数据库

    在Oracle数据库中,varchar2类型的字段长度可高达4,000个字符,但在特定情况下,如使用BLOB存储,可以扩展到更大的值。当从Oracle迁移到MySQL或GP时,可能需要调整字段长度以适应目标数据库的限制。例如,如果源...

    函数进行BLOB转换Varchar2.txt

    Oracle SQL 函数进行BLOB转换Varchar2

    db2和oracle的区别.docx

    在创建数据库实例的过程中,DB2和Oracle的步骤有显著区别。在DB2中,可以通过DB2控制中心创建数据库实例,包括选择“创建数据库”、“标准”选项,定义数据库名称,设置缓冲池和表空间页大小,选择代码集,最后确认...

    Oracle与DB2数据类型分类对应说明

    例如,在 DB2/400 中,我们可以使用定长的 CHAR(N)类型与 Oracle 的 VARCHAR2(n)相对应,这样可以提高效率和节省存储空间。 四、LOB 类型 DB2/400 提供 VARCHAR 和 CLOB 与 Oracle 中的 RAW 和 LONG RAW 相...

    Oracle和SqlServer语法区别

    Oracle和SqlServer语法区别 Oracle和SqlServer是两种流行的关系型数据库管理系统,它们之间存在着一些语法区别。了解这些区别对于开发者来说非常重要,因为它可以帮助他们更好地迁移到新的数据库管理系统。下面将...

    Oracle和DB2的数据类型比较

    对于Oracle中的VARCHAR2类型,可以根据实际需求选择与DB2/400中的CHAR或VARCHAR类型对应。特别是当VARCHAR2类型的长度小于等于32766时,建议使用DB2/400中的CHAR类型以提高效率并节省存储空间。 #### 五、大对象...

    ORACLE与DB2的区别和转换

    ### ORACLE与DB2的区别和转换 #### 一、简介 在数据库领域,Oracle和DB2都是非常流行的数据库管理系统。它们各自具有独特的特性和优势,并且广泛应用于不同的业务场景中。对于那些需要在Oracle和DB2之间进行数据...

    sql server 和oracle 中数据类型的区别

    25. **varchar**: 可变长度的非Unicode字符类型,如`varchar(50)`,在Oracle中的对应类型为`VARCHAR2(50)`。 ### Oracle 数据类型 Oracle数据库管理系统提供了丰富的数据类型支持,下面是一些常见数据类型的介绍...

    Oracle与postgres的区别和转化

    Oracle 与 Postgres 的区别和转化 Oracle 和 Postgres 是两种不同的关系型数据库管理系统,虽然它们都遵循 SQL 标准,但是它们之间存在着一些区别。了解这些区别对于数据库开发和迁移非常重要。本文将主要介绍 ...

    Oracle接收长度大于4000的字符串

    在Oracle数据库中,默认情况下,`VARCHAR2`类型字段的最大长度为4000个字符。当需要处理更长的字符串时(例如,超过4000个字符),可以采用多种方法来解决这一问题。本文将详细介绍如何在.NET环境中处理和传递长度...

Global site tag (gtag.js) - Google Analytics