Oracle為什麼需要國家字符集及相應的資料型別
為什麼要有兩個字符集?如果我知道只需要英文,設定資料庫字符集=US7ASCII,如果我知道只需要西歐字元,設定資料庫字符集=WE8MSWIN1252或者WE8ISO89859P1,或者乾脆就用AL32UTF8。你看,我只需要設定“資料庫字符集”,那麼“國家字符集”有什麼必要呢?
其實,考慮到歷史遺留問題以及資料庫建立者們無法避免的“短視”,很多現有資料庫都無法支援UNICODE字符集,例如要在現有的US7ASCII資料庫字符集的資料庫中儲存中文,這個時候“國家字符集”+NVARCHAR2這樣的組合就能救你一命了。對於資料型別為NVARCHAR2(以及NCHAR, NCLOB)的欄位,它使用是國家字符集,與資料庫字符集的設定無關。自9i以後,國家字符集可選的只有AL16UTF16與AL32UTF8,UTF-16與UTF-8都是UNICODE編碼標準的實現,因些可以表示世界上幾乎所有的文字。
當然,如果資料庫字符集本身就使了UNICODE字符集,就沒有必要使用NVARCHAR2, NCHAR, NCLOB這些型別了。
其實,考慮到歷史遺留問題以及資料庫建立者們無法避免的“短視”,很多現有資料庫都無法支援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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle資料型別對應Java型別Oracle資料型別Java
- 資料型別和字符集資料型別
- ajax為什麼需要json格式響應資料?JSON
- 資料型別是什麼?Python的資料型別又有哪些?資料型別Python
- Oracle和sqlserver資料型別對應OracleSQLServer資料型別
- 為什麼需要資料治理
- 什麼是寫程式碼及基本資料型別資料型別
- Oracle 資料型別Oracle資料型別
- 什麼是組合資料型別?Python組合資料型別分為幾類?資料型別Python
- Oracle的number資料型別Oracle資料型別
- 資料科學家最需要什麼技能?資料科學
- 資料庫產業為什麼需要規模效應資料庫產業
- python基礎之資料型別及相關方法Python資料型別
- 【轉】ORACLE資料型別Oracle資料型別
- Oracle anydata資料型別Oracle資料型別
- ORACLE NUMBER資料型別Oracle資料型別
- redis資料型別及應用場景Redis資料型別
- 常見python資料型別及其相對應的函式Python資料型別函式
- 深度學習為什麼需要那麼多的資料?深度學習
- Oracle OCP(19):資料型別Oracle資料型別
- 為什麼需要應急響應?網路安全應急響應需要做什麼?
- 申請英國公司需要什麼條件?都有哪些型別?型別
- redis的五種資料型別及應用場景Redis資料型別
- Java資料型別及型別轉換Java資料型別
- 你的企業為什麼需要敏捷轉型敏捷
- python不同資料型別之間的區別有什麼?Python資料型別
- 為什麼資料科學家應該開始學習Swift?資料科學Swift
- 資料結構中抽象資料型別是什麼?資料結構抽象資料型別
- Oracle字串資料型別簡述Oracle字串資料型別
- 為什麼DBA需要資料庫廠商的資料庫概念文件資料庫
- JS中其他資料型別轉為number資料型別的方法JS資料型別
- 【網路安全】組織為什麼需要應急響應?應急響應需要做什麼?
- 資料庫應用需要什麼樣的雲原生能力資料庫
- Java中基本資料型別和包裝型別有什麼區別?Java資料型別
- 為什麼公司需要專業的測試資料管理?
- 資料湖架構,為什麼需要“湖加速”?架構
- 為什麼我們需要資料庫事務資料庫
- 資料血緣系列(1)—— 為什麼需要資料血緣?
- 修改Oracle資料庫字符集(zt)Oracle資料庫