ORACLE 修改資料庫的字符集編碼為UTF 8

2022-02-11 01:48:54 字數 1584 閱讀 3715

**:

表示客戶端的字符集的設定,可能是引數檔案,環境變數或者是登錄檔會話字符集環境

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 databasenational 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的區域設定就沒有問題 。

修改資料庫字符集

新增環境變數修改資料庫字符集設定環境變數 在my computer properties advanced environment variables system variables 新增環境變數設定,如 variable name nls lang,variable value simplifi...

修改資料庫的預設字符集

預設字符集下char和varchar不處理中文 這裡是修改字符集的方式和語句 mysql字符集詳解 點我 建資料庫的時候新增字符集 create datebase ii character set utf8 建表的時候新增字符集 default charset utf8 顯示表的字符集 show c...

修改oracle資料庫字符集

關閉db1,保留乙個節點 sql shutdown immediate 在db1上以root使用者執行,停止該節點的cluster服務 crsctl stop crs 在db2上檢視是否使用sfile啟動 sql show parameter spfile 若value為空,表示用pfile引數啟動...