資源描述:
《oracle導(dǎo)入出現(xiàn)字符集問題解決辦法》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、oracle導(dǎo)入出現(xiàn)字符集問題解決辦法場景:把一臺linux上的oracle庫的數(shù)據(jù)搗騰到一臺windows2003上的oracle庫中,在搗騰的過程中亂碼了!有經(jīng)驗的知道多半是要改windows的注冊表。注冊表打開發(fā)方式:Win98/98SE/Me運行中輸入regedit.exe無權(quán)限限制Win2000/XP1.開始>>運行.中輸入regedt322.開始>>運行?屮輸入regedit第一種方法打開的注冊表編輯器和Win98下的一樣,而且功能相同,而使用第二種方法打開的注冊表編輯器則可以方便的設(shè)置權(quán)限,建議網(wǎng)絡(luò)管理員使用第2種方法打開注冊表編輯器修改需
2、要修改的權(quán)限設(shè)置部分以免被他人惡意修改。WindowsVista/71.在開始菜單搜索框中輸入regedit并按回車鍵.(需要管理員權(quán)限)2.在運行中輸入regedit.exe(需要管理員權(quán)限)1.NLS_LANG參數(shù)組成NLS_LANG參數(shù)由以下部分組成:Nntcharacterset>Language:指定Oracle消息使用的語言,校驗,日期中月份和日顯示。Territory:指定默認日期、數(shù)字、貨幣等格式,地區(qū)和計算星期及日期的習慣。Clientcharacterset:控制客戶端應(yīng)用程序使用的字符集例如:NLS_LANG=AMERICAN_AM
3、ERICA.US7ASCIIAMERICAN是語言,AMERICA是地區(qū),US7ASCII是客戶端字符集通常設(shè)置或者等于客戶端(如Windows)代碼頁或者對于unicode應(yīng)用設(shè)置為UTF8在Windows上查看當前系統(tǒng)的代碼頁可以使用chcp命令:E:>chcp活動的代碼頁:936代碼頁936也就是中文字符集GBK,在Microsoft的官方站點上,我們可以遭到關(guān)于936代碼頁的具體編碼規(guī)則,請參考以下鏈接:/globaldev/reference/dbcs/936.htm2.查看NLS_LANG的方法Windows使用:注冊表HKEY_LOCAL
4、_MACHINESOFTWAREORACLEHOMExxNLS_LANG查看Unix使用:env
5、grepNLS_LANG如:/opt/oracle>env
6、grepNLS_LANGNLSLANG=AMERICANCHINA.ZHS16GBKWindows客戶端設(shè)置,可以在注冊表中更改NLS_LANG,具體鍵值位丁:HKEY_LOCAL_MACHINESOFTWAREORACLEHOMExxxx指初在多個ORACLE_HOME時系統(tǒng)編號。1.查看數(shù)據(jù)庫當前字符集參數(shù)設(shè)置SELECT*FROMv$nls_parameters;2.查看數(shù)據(jù)庫
7、可用字矗:集參數(shù)設(shè)置SELECT*FROMv$nls_valid_values;3.客戶端NLS_LANG矗設(shè)置方法Windows:#常用屮文字符集NLS_LANG=SIMPLIFIEDCHINESE_CHINA.ZHS16GBK#常用unicode字符集NLS_LANG=american_america.AL32UTF8可反通過修改注冊看建值永久設(shè)置HKEY_LOCAL_MACHINESOFTWAREORACLEHOMExxNLS_LANGUnix:#常用unicode字符集exportNLS_LANG=american_america.AL3
8、2UTF8#常用中文季符集一exportNLS_LANG="SimplifiedChinese_china".ZHS16GBK可以編輯bash_profile文件進彳亍永久設(shè)置vi.bash_profileNLS_LANG="SimplifiedChinese_chinan.ZHS16GBKexportNLS_LANG#使bash_profile設(shè)置生效source.bash_profile[Q]怎么樣查看數(shù)據(jù)庫字符集[A]數(shù)據(jù)庫服務(wù)器字符集select*fromnls_database_parameters,其來源于props$,是表示數(shù)據(jù)庫的字符集。
9、一一客戶端字符集環(huán)境select*fromnIsjnstance_parameters,其來源于v$parameter,表示客戶端的字符集的設(shè)置,可能是參數(shù)文件,環(huán)境變量或者是注冊表會話字符集環(huán)境select*fromnls_session_parameters,其來源于v$nls_parameters,表示會話自己的設(shè)置,可能是會話的環(huán)境變量或者是altersession完成,如果會話沒有特殊的設(shè)置,將與nls_instance_parameters一致??蛻舳说淖址笈c服務(wù)器一致,才能正確顯示數(shù)據(jù)庫的非Ascii字符。如果多個設(shè)置存在的吋候,al
10、tersession>環(huán)境變量〉注冊表>參數(shù)文件字符集要求一致,但是語言設(shè)置卻可