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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 為什麼Javascript需要型別?JavaScript型別
- oracle國家字符集與資料庫字符集Oracle資料庫
- 中外對照:我們需要什麼型別的相機?【資料資訊圖】型別
- oracle10g_csscan_更變資料庫字符集及國家字符集的工具測試OracleCSS資料庫
- Oracle字符集和國家字符集Oracle
- 為什麼需要資料治理
- Oracle資料型別對應Java型別Oracle資料型別Java
- ajax為什麼需要json格式響應資料?JSON
- 資料庫產業為什麼需要規模效應資料庫產業
- 什麼是寫程式碼及基本資料型別資料型別
- 資料科學家最需要什麼技能?資料科學
- 資料型別和字符集資料型別
- mysql 資料型別,字符集MySQL 資料型別
- 資料型別是什麼?Python的資料型別又有哪些?資料型別Python
- 為什麼你需要更精準的資料?
- 什麼是組合資料型別?Python組合資料型別分為幾類?資料型別Python
- 為什麼需要大資料安全分析?大資料
- 誰知道資料庫中的 longbinary型別對應的Java型別是什麼?資料庫型別Java
- 深度學習為什麼需要那麼多的資料?深度學習
- 為什麼動態型別語言相對比較慢?型別
- 為什麼需要應急響應?網路安全應急響應需要做什麼?
- oracle將表中date資料型別修改為timestamp資料型別Oracle資料型別
- Oracle和sqlserver資料型別對應OracleSQLServer資料型別
- Oracle時間型別資料為0的bugOracle型別
- 為什麼需要DTO(資料傳輸物件)物件
- 為什麼資料科學家應該開始學習Swift?資料科學Swift
- redis資料型別及應用場景Redis資料型別
- Redis 資料型別及應用場景Redis資料型別
- 你的企業為什麼需要敏捷轉型敏捷
- Oracle的 資料型別比較及注意事項Oracle資料型別
- python基礎之資料型別及相關方法Python資料型別
- 【網路安全】組織為什麼需要應急響應?應急響應需要做什麼?
- Oracle資料型別Oracle資料型別
- Oracle 資料型別Oracle資料型別
- 為什麼我們需要資料庫事務資料庫
- 資料湖架構,為什麼需要“湖加速”?架構
- 資料血緣系列(1)—— 為什麼需要資料血緣?
- 為什麼DBA需要資料庫廠商的資料庫概念文件資料庫