ORACLE 修改資料庫的字符集編碼為UTF-8
1、檢視資料庫字符集?
資料庫伺服器字符集:select * from nls_database_parameters,其來源於props$,是表示資料庫的字符集。
客戶端字符集環境:select * from nls_instance_parameters,其來源於v$parameter,表示客戶端的字符集的設定,可能是引數檔案,環境變數或者是登錄檔會話字符集環境 select * from nls_session_parameters,其來源於v$nls_parameters,表示會話自己的設定,可能是會話的環境變數或者是alter session完成,如果會話沒有特殊的設定,將與nls_instance_parameters一致。
客戶端的字符集要求與伺服器一致,才能正確顯示資料庫的非Ascii字元。如果多個設定存在的時候,alter session>環境變數>登錄檔>引數檔案字符集要求一致,但是語言設定卻可以不同,語言設定建議用英文。如字符集是zhs16gbk,則nls_lang可以是American_America.zhs16gbk。(紅色字型一定要改)
2、修改Oracle的字符集,如下例把字符集GB2312修改為UTF-8
步驟:
1.在SQL*PLUS 中,以DBA登入
conn 使用者名稱 as sysdba
2.執行轉換語句:
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;
注意:如果沒有大物件,在使用過程中進行語言轉換沒有什麼影響,(切記設定的字符集必須是ORACLE支援,不然不能start)
按上面的做法就可以,但是可能會出現
ORA-12717: Cannot ALTER DATABASE NATIONAL CHARACTER SET when NCLOB data exists
ORA-12717: 存在 NCLOB, NCHAR 或 NVARCHAR2 資料時, 不能發出 ALTER DATABASE NATIONAL CHARACTER SET 命令
這樣的提示資訊
要解決這個問題有兩種方法
一個是,利用INTERNAL_USE 關鍵字修改區域設定,還有一個是利用re-create,但是re-create有點複雜,所以請用internal_use,
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 INTERNAL_USE UTF8;
SHUTDOWN IMMEDIATE;
STARTUP;
如果按上面的做法做,National charset的區域設定就沒有問題 。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22392018/viewspace-775369/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 「Oracle」資料庫字符集編碼修改Oracle資料庫
- 修改Oracle資料庫字符集Oracle資料庫
- Linux下修改MySQL資料庫字元編碼為UTF-8解決中文亂碼LinuxMySql資料庫字元
- 修改Oracle資料庫字符集(zt)Oracle資料庫
- MySql修改資料庫編碼為UTF8MySql資料庫
- 修改資料庫字符集資料庫
- Oracle修改資料字符集Oracle
- mysql修改資料庫編碼MySql資料庫
- 修改資料庫字符集(轉)資料庫
- 修改oracle9i資料庫字符集的方法(轉)Oracle資料庫
- 怎樣修改資料庫字符集資料庫
- ANSI(字符集) and Unicode(字符集) and UTF-8(編碼Unicode字符集)Unicode
- 修改mysql資料庫的預設編碼方式MySql資料庫
- oracle 修改資料庫為歸檔模式Oracle資料庫模式
- oracle資料庫的字符集更改Oracle資料庫
- 字符集編碼淺析:Unicode和UTF-8Unicode
- oracle資料庫字符集資訊Oracle資料庫
- oracle資料庫字符集的轉換Oracle資料庫
- mysql 資料庫 表 欄位 編碼修改 方法MySql資料庫
- oracle國家字符集與資料庫字符集Oracle資料庫
- 檢視oracle資料庫字符集Oracle資料庫
- Oracle資料庫字符集介紹Oracle資料庫
- Oracle資料庫字符集問題Oracle資料庫
- Oracle資料庫字符集淺析Oracle資料庫
- Oracle資料庫字符集的全面認識Oracle資料庫
- ORA-12899 修改資料庫字符集資料庫
- 修改Oracle資料庫表的大小Oracle資料庫
- 【實驗】【MySQL】模擬將latin1字符集的資料庫修改為gbk字符集MySql資料庫
- php 設定字符集為utf-8PHP
- Oracle資料庫字符集問題解析Oracle資料庫
- 巧妙轉換ORACLE資料庫字符集Oracle資料庫
- Oracle資料庫字符集分析之一Oracle資料庫
- Oracle 字符集修改Oracle
- 修改oracle字符集Oracle
- oracle修改字符集Oracle
- oracle字符集修改Oracle
- oracle 修改字符集Oracle
- flex中接收非utf-8編碼的後臺資料Flex