VARCHAR2(N CHAR)與VARCHAR2(N)的區別[Oracle基礎]

tangyunoracle發表於2013-12-27
在資料庫開發的時候,經常需要考慮儲存空間的問題,當然很多時候我們並不需要去考慮一些細小的差別,但是當儲存資源較為緊張的時候,我們還是有必要了解的。這裡採用一個例子來區分VARCHAR2(N CHAR)與VARCHAR2(N)的區別。
SQL> create table tangyun (c1 varchar2(1), c2 varchar2(1 char));
SQL> insert into tangyun values ('t', 'y');
SQL> 1 rows inserted
SQL> insert into tangyun values ('湯', '雲');
SQL 錯誤: ORA-12899: 列 "OSIBANK"."TANGYUN"."C1" 的值太大 (實際值: 2, 最大值: 1)
SQL> insert into tangyun values ('t', '雲');
SQL> 1 rows inserted
SQL> insert into tangyun values ('t', 'ty');
SQL 錯誤: ORA-12899: 列 "OSIBANK"."TANGYUN"."C2" 的值太大 (實際值: 2, 最大值: 1)。
對比兩次插入的報錯資訊可以很明顯的區分:
1、VARCHAR2(64 CHAR) 能存64個漢字,當然也能存64個字元,但是不能存 128個字元。
2、VARCHAR2(64)則可以存64個字元,但是不能存放64個漢字。
--------------End----------------------------------------------

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24930246/viewspace-1064982/,如需轉載,請註明出處,否則將追究法律責任。

相關文章