ORACLE字符集(zt)

tolywang發表於2007-02-06
在大型資料庫管理系統中,ORACLE資料庫不論在資料庫管理能力還是在安全性方面都是無可非議的。國內企業使用ORACLE資料庫的也較多,但是由於ORACLE不同版本的字符集,給資料顯示、資料備份、資料轉換等實際工作帶來了不少麻煩。

一、字符集引數

一旦資料庫建立後,資料庫的字符集是不能改變的。因此,考慮使用哪一種字符集是十分重要的。資料庫字符集應該是作業系統本地字符集的一個超集。存取資料庫的客戶使用的字符集將決定選擇哪一個超集,即資料庫字符集應該是所有客戶字符集的超集。

下面介紹一些與字符集有關的NLS_LANG引數:

NLS_LANG格式:NLS_LANG=language_territory.charset

有三個組成部分(語言、地域和字符集),每個組成成分控制了NLS子集的特性。三個成分可以任意組合,例如:

AMERICAN_AMERICA.US7SCII

JPANESE_JAPAN.JA16EUC

其中:language 指定伺服器訊息的語言。

territory 指定伺服器的日期和數字格式。

Charset 指定字符集

還有一些子集可以更明確定義NLS_LANG引數:

NLS_DATE_FORMAT 預設的日期格式

NLS_DATE_LANGUAGE 預設的日期語言

NLS_NUMBERIC_CHARACTERS 小數字符和組分隔開

NLS_CURRENCY 本地貨幣字元

NLS_ISO_CURRENCY ISO貨幣字元

NLS_SORT 字元排序序列

二、字符集轉換

1、NLS_LANG引數的修改方法:

1)用SYS使用者名稱登陸ORACLE。

2)檢視字符集內容

SQL>SELECT * FROM PROPS$;

3)修改相應的字元子集

SQL>UPDATE PROPS$ SET VALUE$=’SIMPLIFIED CHINESE ‘

WHERE NAME=’NLS_LANGUAGE’;

4) 遞交COMMIT;

2、NLS_LANG引數的具體應用:

1)採用伺服器端/客戶端方式,兩端字符集不同

修改客戶端字符集:

WIN95/WIN98:修改登錄檔

HKEY_LOCAL_MACHINESOFTWAREORACLENLS_LANG

UNIX:按照1方法,直接進入ORACLE 修改。

2)不同字符集使用EXP/IMP命令

按照1方法,修改IMP端的字符集設定,如果是WIN98/WIN95系統,還必須修改登錄檔。注意:NLS_LANG三個子集的引數必須一致。另外,如 果字符集單雙位元組設定不同,則不能透過修改字符集進行轉換。可以使用其他方式,不修改字符集,進行ORACLE資料庫搬移,如資料量比較小,可以使用 SQLLOAD命令,透過文字檔案轉換;使用其他資料庫軟體(ACCESS,FOXPRO等)轉換

源文件 <>

http://hi.baidu.com/suguiyang/blog/item/7680f443f74a681373f05d73.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-84501/,如需轉載,請註明出處,否則將追究法律責任。

相關文章