oracle查看編碼以及修改編碼____web

來源:互聯網
上載者:User
首先查看oracle資料庫的編碼


SQL> select * from nls_database_parameters where parameter ='NLS_CHARACTERSET';


PARAMETER
--------------------
VALUE
--------------------
NLS_CHARACTERSET
AL32UTF8


這其來源於props$,這是表示資料庫的字元集。


oracle用戶端編碼


SQL> select * from nls_instance_parameters where parameter='NLS_LANGUAGE';


PARAMETER
--------------------
VALUE
--------------------
NLS_LANGUAGE
SIMPLIFIED CHINESE


其來源於v$parameter,表示用戶端的字元集的設定,可能是參數檔案,環境變數或者是註冊表會話字元集環境


select * from nls_session_parameters,其來源於v$nls_parameters,表示會話自己的設定,可能是會話的環境變數或者是alter session完成,如果會話沒有特殊的設定,將與nls_instance_parameters一致。


再來說一下怎麼修改oracle的字元集:


目前我的資料庫環境的字元集是AL32UTF8,那麼把它改成ZHS16GBK


1.首先以sysdba的身份登入上去 conn /as sysdba


2.關閉資料庫shutdown immediate;


3.以mount打來資料庫,startup mount


4.設定session 


 SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;


5.啟動資料庫


alter database open;


6.修改字元集


ALTER DATABASE CHARACTER SET ZHS16GBK;


這會可能會報錯,提示我們的字元集:新字元集必須為舊字元集的超集,這時我們可以跳過超集的檢查做更改:


 ALTER DATABASE character set INTERNAL_USE ZHS16GBK;


這條語句就可以了,TERNAL_USE提供的協助就會使oracle繞過了子集與超集的驗證,這條語句和上面的語句內部操作時完全相同的。


7.關閉,重新啟動


SQL>shutdown immediate;
SQL> startup


當然字元集最好不要輕易修改,因為這會對資料庫的資料有直接的影響,如果是生產環境的話,可能會造成不可估計得損失。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.