oracle查看字符集后修改oracle服務(wù)端和客戶端字符集的步驟
1.oracle server端字符集查詢
select userenv('language') from dual;
server字符集修改:
將數(shù)據(jù)庫(kù)啟動(dòng)到RESTRICTED模式下做字符集更改:
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ò)超集的檢查做更改:
SQL>ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
SQL>select * from v$nls_parameters;
重啟檢查是否更改完成:
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端字符集修改
$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ǔ)句:
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è)置
ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8;
相關(guān)文章
關(guān)于ORACLE通過(guò)file_id與block_id定位數(shù)據(jù)庫(kù)對(duì)象遇到的問(wèn)題引發(fā)的思考
這篇文章主要介紹了關(guān)于ORACLE通過(guò)file_id與block_id定位數(shù)據(jù)庫(kù)對(duì)象遇到的問(wèn)題引發(fā)的思考,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03Oracle數(shù)據(jù)庫(kù)設(shè)置任務(wù)計(jì)劃備份一周的備份記錄
這篇文章介紹了Oracle數(shù)據(jù)庫(kù)下通過(guò)任務(wù)計(jì)劃備份一周的記錄的批處理代碼,需要的朋友可以參考下2013-08-08設(shè)置oralce自動(dòng)內(nèi)存管理執(zhí)行步驟
設(shè)置內(nèi)存管理首先要啟用oracle自動(dòng)內(nèi)存管理需要shutdown ,restart,接下來(lái)為大家介紹下詳細(xì)的執(zhí)行步驟,感興趣的朋友可以參考下哈2013-04-04linux自動(dòng)運(yùn)行rman增量備份腳本
這篇文章主要介紹了linux自動(dòng)運(yùn)行rman增量備份腳本,實(shí)現(xiàn)周日和周三凌晨1:00執(zhí)行0級(jí)全庫(kù)備份,周一、二、四、五、六凌晨1:30執(zhí)行增量備份,需要的朋友可以參考下2014-03-03用Oracle9ias開(kāi)發(fā)無(wú)線應(yīng)用程序開(kāi)發(fā)者網(wǎng)絡(luò)Oracle
用Oracle9ias開(kāi)發(fā)無(wú)線應(yīng)用程序開(kāi)發(fā)者網(wǎng)絡(luò)Oracle...2007-03-03Oracle存儲(chǔ)過(guò)程和自定義函數(shù)詳解
本篇文章主要介紹了Oracle存儲(chǔ)過(guò)程和自定義函數(shù)詳解,有需要的可以了解一下。2016-11-11Oracle 數(shù)據(jù)庫(kù)自動(dòng)存儲(chǔ)管理-安裝配置
關(guān)于ASM的討論很多,但是到底什么是ASM?ASM是一個(gè)有效的抽象層,使你的Oracle數(shù)據(jù)庫(kù)可以與叫做diskgroups的抽象空間一起使用,而不是直接使用datafiles。2009-05-05Oracle中查看引起Session阻塞的2個(gè)腳本分享
這篇文章主要介紹了Oracle中查看引起Session阻塞的2個(gè)腳本分享,本文給出了2個(gè)腳本來(lái)查詢導(dǎo)致Session阻塞的原因,并給出Kill引起阻塞的Session方法,需要的朋友可以參考下2014-10-10