--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數據到其他字符集的目標數據中;