oracle如何把字符集改回默认,更改oracle字符集
在安裝oracle時,選了默認字符集是utf8,后來發現與plsql developer工具聯合使用時,會出現各種亂碼問題。再加上我的項目也是gbk的,因此,將字符集改成gbk試試。
步驟如下:
1.查看當前的字符集和語言
select * from? V$NLS_PARAMETERS
得到如圖所示的效果(圖片來自網絡):
2.看看注冊表中oracle的語言:
在電腦“開始”菜單里找到“運行”,然后在對話框里輸入“regedit”就能打開電腦注冊表了。依次單擊HKEY_LOCAL_MACHINE --->SOFTWARE ---> ORACLE--->KEY_OraDb11g_home1,找到NLS_LANG,查看數值數據是否為:SIMPLIFIED CHINESE_CHINA.ZHS16GBK。
3.看看環境變量的值
變量名:NLS_LANG
變量值設為:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
4.如果想把character徹底改回gbk,采用如下方法:
方法一:sqlplus “用戶/密碼 as sysdba” sqlplus “sys/sys as sysdba”
方法二:sqlplus/nolog
SQL> conn /as sysdba
SQL> shutdown immediate;
SQL> startup mount
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQL> alter database open;
SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;
ORA-12712: new character set must be a superset of old character set
提示我們的字符集:新字符集必須為舊字符集的超集,這時我們可以跳過超集的檢查做更改:
SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
--我們看到這個過程和之前ALTER DATABASE CHARACTER SET操作的內部過程是完全相同的,也就是說INTERNAL_USE提供的幫助就是使Oracle數據庫繞過了子集與超集的校驗.
SQL> shutdown immediate;
SQL> startup
SQL> select userenv('language') from dual;? Oracle查看字符集
成功更改。重啟plsql developer 后,不在亂碼。
以上內容參考:
http://blog.csdn.net/huangyanlong
總結
以上是生活随笔為你收集整理的oracle如何把字符集改回默认,更改oracle字符集的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos web 访问mysql_C
- 下一篇: 自定义函数删除字母C语言,[编程入门]自