你是否對Oracle字符的類型有所了解?今天我們就對其進行歸納,其主要有CHAR、NCHAR、LONG、以及VARCHAR2(VARCHAR)、和NVARCHAR2幾種Oracle字符類型。以下的文章就是對這幾種類型的詳細介紹。
CHAR,描述定長的Oracle字符串,如果實際值不夠定義的長度,系統將以空格填充。它的聲明方式如下CHAR(L),L為Oracle字符串長度,缺省為1,作為變量最大32767個字符,作為數據存儲在Oracle8中最大為2000。
VARCHAR2(VARCHAR),描述變長字符串。它的聲明方式如下VARCHAR2(L),L為字符串長度,沒有缺省值,作為變量最大32767個字節,作為數據存儲在ORACLE8中最大為4000。在多字節語言環境中,實際存儲的Oracle字符個數可能小於L值。
例如:當語言環境為中文(SIMPLIFIED CHINESE_CHINA.ZHS16GBK)時,一個VARCHAR2(200)的數據列可以保存200個英文字符或者100個漢字字符。
LONG,在數據庫存儲中可以用來保存高達2G的數據,作為變量,可以表示一個最大長度為32760字節的可變字符串。
NCHAR、NVARCHAR2,國家Oracle字符集,與環境變量NLS指定的語言集密切相關,使用方法和CHAR、VARCHAR2相同。
(varchar2是oracle提供的獨特的數據類型,Oracle保證在任何版本中該數據類型向上和向下兼容,但不保證varchar。因為varchar是標准sql提供的數據類型,有可能隨著sql標准的變化而改變,推薦用varchar2。)
(CHAR如果存放字母數字占1個字節,存放GBK編碼的漢字存放2個字節,存放UTF-8編碼的漢字占用3個字節;NCHAR根據所選Oracle字符集來定義存放字符的占用字節數,一般都為2個字節存放一個字符(不管字符或者漢字)。同理VARCHAR2與NVARCHAR2的區別。)