程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oralce中VARCHAR2()與NVARCHAR2()的區別介紹,oralcevarchar2

Oralce中VARCHAR2()與NVARCHAR2()的區別介紹,oralcevarchar2

編輯:Oracle教程

Oralce中VARCHAR2()與NVARCHAR2()的區別介紹,oralcevarchar2


一、先來看看Oralce中VARCHAR2()和NVARCHAR2()的官方定義

官方文檔定義如下:

VARCHAR2(size [BYTE | CHAR])

Variable-length character string having maximum length size bytes or characters. Maximum size is 4000 bytes or characters, and minimum is 1 byte or 1 character. You must specify size for VARCHAR2.
BYTE indicates that the column will have byte length semantics. CHAR indicates that the column will have character semantics.

NVARCHAR2(size)

Variable-length Unicode character string having maximum length size characters. The number of bytes can be up to two times size for AL16UTF16 encoding and three times size for UTF8 encoding. Maximum size is determined by the national character set definition, with an upper limit of 4000 bytes. You must specify size for NVARCHAR2.

二、中文翻譯:

VARCHAR2(size [BYTE | CHAR])

具有最大長度的字節數(bytes)或字符數(char)的可變長度的字符類型。最大長度為4000字節/字符,最小長度是1字節/字符。你必須為VARCHAR2()類型指定大小。

BYTE代表該列以字節計算長度,CHAR代表該列以字符計算長度。

NVARCHAR2(size)

具有最大長度的帶有字符集屬性的可變長度的字符類型。它的長度是AL16UTF16字符集的2倍,UTF8字符集的三倍。它的最大長度取決於字符集,上限位4000字節。您必須為NVARCHAR2()類型指定大小。

三、實戰演練

使用字符集為UTF8。

# 驗證NVARCHAR2(size)與VARCHAR2(size CHAR)相似
SQL> create table t_varchar2(name varchar2(6 CHAR));
Table created
SQL> insert into t_varchar2 values('中國');
1 row inserted
SQL> insert into t_varchar2 values('中華人民共和');
1 row inserted
SQL> insert into t_varchar2 values('中華人民共和國');
insert into t_varchar2 values('中華人民共和國')
ORA-12899: 列 "SCOTT"."T_VARCHAR2"."NAME" 的值太大 (實際值: 7, 最大值: 6)
SQL> create table t_nvarchar2(name nvarchar2(6));
Table created
SQL> insert into t_nvarchar2 values('中國');
1 row inserted
SQL> insert into t_nvarchar2 values('中華人民共和');
1 row inserted
SQL> insert into t_nvarchar2 values('中華人民共和國');
insert into t_nvarchar2 values('中華人民共和國')
ORA-12899: 列 "SCOTT"."T_NVARCHAR2"."NAME" 的值太大 (實際值: 7, 最大值: 6)
# 驗證NVARCHAR2(sie)與VARCHAR(size CHAR)存在最大長度不同
SQL> create table t_varchar2(name varchar2(4000 CHAR));
Table created
SQL> create table t_nvarchar2(name nvarchar2(4000));
create table t_nvarchar2(name nvarchar2(4000))
ORA-00910: 指定的長度對於數據類型而言過長

四、區別總結:

NVARCHAR2(size)VARCHAR2(size CHAR)相似,唯一的區別是NVARCHAR2(size)的最大長度是4000字節(實驗測試結果是,在utf8的字符集下,最大長度為2000字符),而VARCHAR2(size CHAR)的最大長度是4000字符。

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved