【oracle】字元集、國家字元集及NLS_LANG運行庫,oraclenls_lang
************************************************************************ ****原文:blog.csdn.net/clark_xu 徐長亮的專欄************************************************************************
--unicode編碼方案
--三個實施標準:utf-8,usc-2,utf-16
--oracle資料庫字元集
--字元集character set
--國家字元集national character set
--字元集主要作用
--用於儲存varchar2,char,clob,long類型資料
--標示表名,列名,以及pl/sql變數等;
--儲存sql和plsql代碼
--國家字元集用於儲存nchar,nvarchar2,nclob等資料類型;
--一般為AL16UTF16
--簡體中文平台的字元集一般為ZHS16GBK;
--常見中文編碼
--ZHS16GBK231280 GBK2312-80 16bit,ASCII
--ZHS16GBK GBK 16bit,ASCII,UDC;
--GBK2312 1981年實施,
--GBK 1995年實施,支援全部中日韓漢子
--GBK和GBK2312的編碼是不同的,同一個編碼可能表達不同的漢字
--AL 開頭,如AL16UTF16,AL表示試用所有原因;
--NLS運行庫路徑:ORACLE_HOME/nls/data
--定義語言NLS_LANGUAGE
--定義地區NLS_TERRITORY
--定義字元集NLS_CHARACTERSET
--中文的檔案,lx00023.nlb,通過locale Builder開啟
--字元和編碼的轉換
select dump('蓋') from dual;
--------------
---typ=96 len=2:184.199
select concat(to_char(184,'xx'),to_char(199,'xx')) from dual;
--b8 c7
select to_number('b8c7','xxxxxx') from dual;
--47303
select chr(47303) from dual;
--蓋
--NLS_LANG的影響
--進行exp攻擊進行匯出的操作時候,非常重要的是用戶端的字元集設定,NLS_LANG設定
--NLS_LANG=<language>_<Territory>.<client characterset>
--language指定了日期的顯示方式,oracle訊息使用的語言
--territory參數指定了貨幣和數位格式
--characterset控制了字元集
--匯入匯出和字元轉換
--來源資料庫和目標資料庫的字元集不同
--匯入的時候設定用戶端NLS_LANG等於匯出時候的字元集,轉換髮送在insert資料到其他字元集的目標資料中;
************************************************************************ ****原文:blog.csdn.net/clark_xu 徐長亮的專欄************************************************************************