`
zgqynx
  • 浏览: 1355774 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle字符 varchar2 nvarchar2

阅读更多
[color=red]A
1:不管是GB还是BIG5,它都是用两个字节来保存一个汉字 
  2:一个汉字的两个字节中,第一个字节的字符>127,第二个 
  字节就不一定了 
  3:例如: 
  
  char   cStr[81]="abc123你好123abc";  
  for(int   i=0;i<strlen(cStr);i+=2)//注意,i+=2  
  {  
      if(cStr[i]>127)//第i与i+1这两个字节是一个汉字  
      {  
          do   something  
      }  
  }


B.想测试一个汉字在各种字符集中到底占用多少字节,请尝试一下语句 
  select   lengthb('汉')   from   dual;
[/color]

注意 !
varchar早就建议不使用了,应该用VARCHAR2。nvarchar估计也不使用的,也应该是使用nvarchar2。
VARCHAR2(size),可变长度的字符串,其最大长度为 size 个字节。size 的最大值是 4000,而最小值是 1。您必须指定一个 VARCHAR2 的 size。
NVARCHAR2(size),可变长度的字符串,依据所选的国家字符集,其最大长度为 size 个字符或字节。size 的最大值取决于存储每个字符所需要的字节数,其上限为 4000 个字节。您必须为 NVARCHAR2 指定一个 size。
VARCHAR2与NVARCHAR2的不同之处在于它们存放信息占用的空间不同。VARCHAR2存放的英文字符只占一个字节,而nvarchar2依据所选的字符集,大多为两个。


关于什么时候用到nchar等国家字符集

只有要用到unicode时才会用到nvarch,比如中文的很多冷僻字.
oracle对uncode的解决有两者方案:一种时数据库级的这要求在安装数据库的时必须选择unicode数据库字符集,这样不管是varcha还是nvarchar都可以存储unicode,也就是说两者没有区别.
另一种是数据类型级,即国家字符集,也就是nvarchar2,就是说当你的数据库字符集不是unicode,比如ZHS16GBK,但又想在个别字段存储诸如中文冷僻字的unicode字符时,就可以选择nvarchar2,但必须9i版本以上的.
分享到:
评论

相关推荐

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

    在Oracle数据库中,`VARCHAR2`是最常用的字符数据类型之一,用于存储变长的字符串。然而,在定义`VARCHAR2`类型时,可以选择指定长度为`BYTE`或`CHAR`。这两种方式看似细微的差别,实际上却对数据存储、性能优化以及...

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

    - **定义**:`VARCHAR2` 类型是 Oracle 中最常用的一种可变长度的字符类型。 - **示例**:如果创建了一个 `VARCHAR2(20)` 类型的字段,并插入 "abc",那么只占用 3 个字符的空间(而不是 20)。 - **特点**: - 只...

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

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

    varchar 和varchar2之间的联系和区别

    在Oracle数据库中,`VARCHAR`与`VARCHAR2`是两种常见的用于存储可变长度字符串的数据类型。尽管它们在名称上相似,但在实际应用中却存在一定的差异。本文将详细介绍这两种数据类型的特性及其应用场景,帮助读者更好...

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

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

    oracle字符集查看与修改.pdf

    * 字符集用来存储 CHAR, VARCHAR2, CLOB, LONG 等类型数据,用于标示诸如表名、列名以及 PL/SQL 变量等,用于存储 SQL 和 PL/SQL 程序单元等。 * 国家字符集用以存储 NCHAR, NVARCHAR2, NCLOB 等类型数据,国家字符...

    函数进行BLOB转换Varchar2.txt

    Oracle SQL 函数进行BLOB转换Varchar2

    char,varchar以及varchar2的区别

    `varchar2`是Oracle数据库独有的字符串类型,与`varchar`类似,也是可变长度的。然而,`varchar2`在Oracle中有一些额外的限制和优化。例如,`varchar2`的最大长度通常小于`varchar`,并且Oracle对`varchar2`的数据...

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

    在 Oracle 中,varchar 类型用于存储字符串数据,而 date 类型用于存储日期和时间数据。这些数据类型之间的转换非常重要。 1. date 转 varchar 使用 to_char 函数可以将 date 类型转换为 varchar 类型。例如: ``...

    Oracle 字符集的查看和修改

    字符集用于存储非Unicode数据类型,如CHAR、VARCHAR2和CLOB,同时也影响对象名和PL/SQL变量的表示。国家字符集则用于存储Unicode数据类型,如NCHAR、NVARCHAR2和NCLOB。 总的来说,理解Oracle字符集对于数据库的...

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

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

    oracle 中几种字符类型

    在 Oracle 中,字符类型是最基本的数据类型之一,有多种不同的字符类型,包括 CHAR、VARCHAR、VARCHAR2、NVARCHAR、NVARCHAR2 等。了解这些字符类型的特点和区别对于数据库设计和应用开发非常重要。 一、CHAR 类型 ...

    浅析Oracle中char和varchar2的区别

    相反,`VARCHAR2`是变长字符串类型,它只占用实际存储的字符数加上一个额外的字节来表示字符串长度(对于Oracle 12c及以后版本,最多2000个字符,对于Oracle 11g及以前版本,最多4000个字符)。比如,一个`VARCHAR2...

    Oracle字符串处理函数

    ### Oracle字符串处理函数详解 #### 1. ASCII ASCII函数用于返回给定字符的ASCII码值。例如: ``` SQL&gt; select ascii('A') A, ascii('a') a, ascii('0') zero, ascii(' ') space from dual; AAZERO SPACE ------...

    oracle 如何判断一个字符串能否转换为数字?

    1. **创建函数**:创建一个返回`VARCHAR2`类型的函数。 2. **尝试转换**:在函数内部尝试将传入的字符串转换为数字。 3. **异常处理**:使用`EXCEPTION`块来捕获任何可能发生的异常,并返回相应的结果。 **示例**:...

    oracle修改字符集,解决乱码问题.

    oracle修改字符集,解决乱码问题.

    Oracle字符集问题

    在创建Oracle数据库时,你需要指定两套字符集:一套用于处理CHAR、VARCHAR2等非Unicode类型的数据,另一套用于处理NCHAR、NVARCHAR2等Unicode类型的数据。对于非Unicode类型,你应根据数据库主要处理的语言和地区...

    oracle 中文字符集问题

    #### 一、Oracle字符集概述 在Oracle环境中,字符集用于定义如何表示和存储字符数据。一个完整的字符集由语言(Language)、地区(Territory)和编码(Charset)三部分组成。例如,`NLS_LANG=AMERICAN_AMERICA.ZHS...

    ORACLE分区

    FIRST_NAME VARCHAR2(30) NOT NULL, LAST_NAME VARCHAR2(30) NOT NULL, PHONE VARCHAR2(15) NOT NULL, EMAIL VARCHAR2(80), STATUS CHAR(1) ) PARTITION BY RANGE (CUSTOMER_ID) ( PARTITION CUS_PART1 VALUES...

Global site tag (gtag.js) - Google Analytics