1.oracle server端字符集查詢
復(fù)制代碼 代碼如下:
select userenv('language') from dual;
server字符集修改:
將數(shù)據(jù)庫(kù)啟動(dòng)到RESTRICTED模式下做字符集更改:
復(fù)制代碼 代碼如下:
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;
ALTER DATABASE CHARACTER SET ZHS16GBK ERROR at line 1:
ORA-12712: new character set must be a superset of old character set
提示我們的字符集:新字符集必須為舊字符集的超集,這時(shí)我們可以跳過(guò)超集的檢查做更改:
復(fù)制代碼 代碼如下:
SQL>ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
SQL>select * from v$nls_parameters;
重啟檢查是否更改完成:
復(fù)制代碼 代碼如下:
SQL>shutdown immediate;
SQL>startup
SQL>select * from v$nls_parameters;
我們看到這個(gè)過(guò)程和之前ALTER DATABASE CHARACTER SET操作的內(nèi)部過(guò)程是完全相同的,也就是說(shuō)INTERNAL_USE提供的幫助就是使Oracle數(shù)據(jù)庫(kù)繞過(guò)了子集與超集的校驗(yàn)
這一方法在某些方面是有用處的,比如測(cè)試;應(yīng)用于產(chǎn)品環(huán)境時(shí)大家應(yīng)該小心,可能會(huì)有一些意外的問(wèn)題。
2.oracle client端字符集修改
復(fù)制代碼 代碼如下:
$echo$NLS_LANG
client字符集修改:
在 /home/oracle與 /root用戶目錄下的.bash_profile中添加或修改 export NLS_LANG="AMERICAN_AMERICA.UTF8" 語(yǔ)句
關(guān)閉當(dāng)前ssh窗口。
注意:NLS_LANG變量一定要配置正確否則會(huì)引起sqlplus失效。
3.修改數(shù)據(jù)庫(kù)字符集為UTF-8
1.以DBA登錄
2.執(zhí)行轉(zhuǎn)換語(yǔ)句:
復(fù)制代碼 代碼如下:
SHUTDOWN IMMEDIATE;
STARTUP MOUNT EXCLUSIVE;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
ALTER DATABASE NATIONAL CHARACTER SET UTF8;
SHUTDOWN IMMEDIATE;
STARTUP;
注意:如果沒(méi)有大對(duì)象,在使用過(guò)程中進(jìn)行語(yǔ)言轉(zhuǎn)換沒(méi)有什么影響!
可能會(huì)出現(xiàn)ORA-12717:CANNOT ALTER DATABASE NATIONAL CHARACTER SET WHEN NCLOBDATAEXISTS, 解決這個(gè)問(wèn)題的方法
利用INTERNAL_USE 關(guān)鍵字修改區(qū)域設(shè)置
復(fù)制代碼 代碼如下:
ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8;
您可能感興趣的文章:- Oracle客戶端與plsql查詢數(shù)據(jù)亂碼修改成中文的快速解決方法
- Oracle修改表空間大小的方法
- 修改oracle數(shù)據(jù)庫(kù)用戶名及密碼的方法
- 查看oracle數(shù)據(jù)庫(kù)的編碼及修改編碼格式的方法
- ORACLE查看并修改最大連接數(shù)的具體步驟
- oracle中修改表名的幾種方式
- oracle查看字符集和修改字符集使用詳解
- 修改計(jì)算機(jī)名或IP后Oracle10g服務(wù)無(wú)法啟動(dòng)的解決方法
- 解決Oracle批量修改問(wèn)題