在大型數據庫管理系統中
ORACLE數據庫不論在數據庫管理能力還是在安全性方面都是無可非議的
國內企業使用ORACLE數據庫的也較多
但是由於ORACLE不同版本的字符集
給數據顯示
數據備份
數據轉換等實際工作帶來了不少麻煩
一
字符集參數
一旦數據庫創建後
數據庫的字符集是不能改變的
因此
考慮使用哪一種字符集是十分重要的
數據庫字符集應該是操作系統本地字符集的一個超集
存取數據庫的客戶使用的字符集將決定選擇哪一個超集
即數據庫字符集應該是所有客戶字符集的超集
下面介紹一些與字符集有關的NLS_LANG參數
NLS_LANG格式
NLS_LANG=language_territory
charset
有三個組成部分(語言
地域和字符集)
每個組成成分控制了NLS子集的特性
三個成分可以任意組合
例如
AMERICAN_AMERICA
US
SCII
JPANESE_JAPAN
JA
EUC
其中
language 指定服務器消息的語言
territory 指定服務器的日期和數字格式
Charset 指定字符集
還有一些子集可以更明確定義NLS_LANG參數
NLS_DATE_FORMAT 缺省的日期格式
NLS_DATE_LANGUAGE 缺省的日期語言
NLS_NUMBERIC_CHARACTERS 小數字符和組分隔開
NLS_CURRENCY 本地貨幣字符
NLS_ISO_CURRENCY ISO貨幣字符
NLS_SORT 字符排序序列
二
字符集轉換
NLS_LANG參數的修改方法
)用SYS用戶名登陸ORACLE
)查看字符集內容
SQL>SELECT * FROM PROPS$;
)修改相應的字符子集
SQL>UPDATE PROPS$ SET VALUE$=
SIMPLIFIED CHINESE
WHERE NAME=
NLS_LANGUAGE
;
) 遞交COMMIT;
NLS_LANG參數的具體應用
)采用服務器端/客戶端方式
兩端字符集不同
修改客戶端字符集
WIN
/WIN
修改注冊表
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\NLS_LANG
UNIX
按照
方法
直接進入ORACLE 修改
)不同字符集使用EXP/IMP命令
按照
方法
修改IMP端的字符集設置
如果是WIN
/WIN
系統
還必須修改注冊表
注意
NLS_LANG三個子集的參數必須一致
另外
如果字符集單雙字節設置不同
則不能通過修改字符集進行轉換
可以使用其他方式
不修改字符集
進行ORACLE數據庫搬移
如數據量比較小
可以使用SQLLOAD命令
通過文本文件轉換
使用其他數據庫軟件(ACCESS
FOXPRO等)轉換
From:http://tw.wingwit.com/Article/program/Oracle/201311/18532.html