Oracle為什麼需要國家字符集及相應的資料型別

LuiseDalian發表於2013-01-11
為什麼要有兩個字符集?如果我知道只需要英文,設定資料庫字符集=US7ASCII,如果我知道只需要西歐字元,設定資料庫字符集=WE8MSWIN1252或者WE8ISO89859P1,或者乾脆就用AL32UTF8。你看,我只需要設定“資料庫字符集”,那麼“國家字符集”有什麼必要呢?

其實,考慮到歷史遺留問題以及資料庫建立者們無法避免的“短視”,很多現有資料庫都無法支援UNICODE字符集,例如要在現有的US7ASCII資料庫字符集的資料庫中儲存中文,這個時候“國家字符集”+NVARCHAR2這樣的組合就能救你一命了。對於資料型別為NVARCHAR2(以及NCHAR, NCLOB)的欄位,它使用是國家字符集,與資料庫字符集的設定無關。自9i以後,國家字符集可選的只有AL16UTF16與AL32UTF8,UTF-16與UTF-8都是UNICODE編碼標準的實現,因些可以表示世界上幾乎所有的文字。

當然,如果資料庫字符集本身就使了UNICODE字符集,就沒有必要使用NVARCHAR2, NCHAR, NCLOB這些型別了。

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

相關文章