[轉]將oracle數據庫的編碼變成utf-8


1、改客戶端字符集:通過WINDOWS的運行菜單運行Regedit,修改注冊表

Start -> Run -> Rededit <-|

Under registry Editor - > HKEY_LOCAL_MACHINE -> SOFTWARE ->Oracle->KEY_XE->RIGHT WINDOW DOUBLE CLICK NLS_LANG -> CHANGE VALUE TO "AMERICAN_AMERICA.UTF8" ->OK ->CLOSE REGISTRY

 

正確設置oracle客戶端字符集的方法:

oracle客戶端字符集設置需要和服務器端一致,否則會出現亂碼問題。

首先連接服務器,查詢服務器端設置:

select * from v$nls_parameters;

找到:

NLS_LANGUAGE

NLS_TERRITORY

NLS_CHARACTERSET

環境變量nls_lang便是由這三部分組成

NLS_LANG = language_territory.charset

比如:

NLS_LANG = American_Japan.JA16SJIS

 

2、改服務器端字符集,通過ORACLE的SQL PLUS命令窗口改

在SQL*PLUS 中,以DBA登錄

conn 用戶名 as sysdba

然后執行以下命令

 

>shutdown immediate; (把database停了)

>startup mount; (把database重開去可更改情況)

>alter system enable restricted session;

>alter system set job_queue_processes=0;

>alter system set aq_tm_processes=0;

>alter database open;

>alter database character set utf8;

OR

>alter database character set internal_use utf8;(這條命令是強制轉換編碼格式,有可能會導致數據庫中的中文變成亂碼)

>shutdown immediate;

>startup; (重開正常oracle)

 

ORACLE數據庫字符集修改完成!

 

 

 

數據庫服務器字符集select * from nls_database_parameters,其來源於props$,是表示數據庫的字符集。

客戶端字符集環境select * from nls_instance_parameters,其來源於v$parameter,

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM