【開發篇sql】 條件和表示式(一) 資料型別

yellowlee發表於2010-05-15

1,資料型別

 

Varchar2nvarchar2char的簡單比較

Varchar2nvarchar2都是可變長度的字元型別,不同的是nvarchar2與國家字符集相關,而char是固定長度的型別。看看他們之間的區別:

create table t_test_chr (

type_char    char(4),

type_varchar2           varchar2(20),

type_nvarchar2          nvarchar2(20)

);

 

insert into t_test_chr values ('aaaa','aaaa','aaaa');

insert into t_test_chr values ('','我考','我考');

 

SQL> select length(type_char),length(type_varchar2),length(type_nvarchar2) from t_test_chr;

 

LENGTH(TYPE_CHAR) LENGTH(TYPE_VARCHAR2) LENGTH(TYPE_NVARCHAR2)

----------------- --------------------- ----------------------

                4                     4                      4

                2                     2                      2

可以看到對於字元來說三者的長度相同,但對於漢字來說就有區別了,而且不同的字符集也存在差異,一個很常見的問題是漢字亂碼問題,這是由於資料庫的字符集設定與客戶端的差異造成的,一般對於開發人員來說這個不用考慮。另外要注意的,char可以不設定長度,預設為1,而varchar2需要設定長度。例如:

SQL> create table t_testchar (v_char char,v_var varchar2(10));

 

Table created.

 

有關字符集的問題詳見附錄一章。有關在設計時資料型別的選擇和特殊字元處理方法在資料庫設計一章中詳述,有關xmltypeoracle xml一章中詳述。有關oracle的基本資料型別,可以參見oracle官方文件的《sql reference》的datatypes一節。

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

相關文章