oracle 11g 查看服務端/用戶端編碼,及修改db編碼

來源:互聯網
上載者:User

oracle 如果server與client端的編碼不一致,asp.net讀取db記錄顯示時,就可能出現亂碼

查看oracle服務端編碼:select * from sys.nls_database_parameters;查看client編碼:select * from sys.nls_session_parameters; 如果二端編碼不一致,可以修改用戶端的編碼:

regedit開啟註冊表:

HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_OraDb10g_home1

修改NLS_LANG的值,一般為 SIMPLIFIED CHINESE_CHINA.ZHS16GBK (簡體中文編碼,這也是oracle安裝時預設的編碼),如果服務端是utf8,該值需要修改成SIMPLIFIED CHINESE_CHINA.AL32UTF8

tips:如果不記得字串,也可以通過在服務端運行 select userenv('language') from dual; 查看

 

此外,如果使用pl/sql devloper,該軟體啟動時,也會檢測用戶端與服務端之間的編碼差異,如果發現不同,將彈出下面的對話方塊:

要想去掉這個提示:修改HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_OraClient11g_client_x86下NLS_LANG的値即可

(註:經本人實際測試發現,修改了註冊表後,雖然這個提示框不再彈出,但有可能導致oracle內建的sqlplus出現亂碼,所以建議還是直接第一次彈出該視窗時,直接勾上 Don't show this message again為好,眼不見為淨)

修改db編碼的辦法:(在oracle 11g上通過測試)
SQL> conn system as sysdba;
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter system enable restricted session;
SQL> alter system set job_queue_processes=0;
SQL> alter database open;
SQL> alter database character set internal_use AL32UTF8;
SQL> shutdown immediate;
SQL> startup 

 最後再記錄幾個常用的oracle sql命令:給使用者(hr)解鎖:alter user hr account unlock;修改使用者(hr)密碼(新密碼為hr):alter user hr identified by hr;授權(emp)表的select許可權給使用者(hr):grant select on emp to hr;取消授權:remove select on emp from hr; 
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.