修改Oracle字符集

2022-07-13 08:57:12 字數 1130 閱讀 8870

資料匯入時報ora-12899錯誤,即插入的資料長度超出欄位的設定長度,實際長度並不長,這是由於oracle字符集不同,漢字佔的長度不同造成的。中文在zhs16gbk中佔2個位元組,在utf-8中卻佔3個位元組,所以漢字匯入utf-8字符集的資料庫就很容易出現字段長度不夠,解決辦法,乙個是增加字段長度,還有就是修改字符集。

如果系統中已經存在很多資料,建議修改字段長度,因為修改字符集後原來資料庫表中的漢字全部變成亂碼。如果一定要修改字符集,必須先導出資料,待到字符集修改後再重新匯入這些資料。

檢視字符集的方法可以用pl/sql develop ---->reports---->dba---->nls database parameters,結果如下圖:

如上圖所示,字符集是utf-8,修改字符集的方法如下:

修改資料庫字符集為:zhs16gbk

開始->執行->cmd,輸入sqlplus system/manager@orcl as sysdba

若此時資料庫伺服器已啟動,則先執行 shutdown immediate 命令關閉資料庫伺服器,

然後執行以下命令:

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;

error at line 1:ora-12721: operation cannot execute when other sessions are active

若出現上面的錯誤,使用下面的辦法進行修改,使用internal_use可以跳過超集的檢查:

sql>alter database character set internal_use zhs16gbk;

sql>shutdown immediate

sql>startup

至此,字符集修改完畢,再查字符集,結果如下:

oracle 修改字符集

在大型資料庫管理系統中,oracle資料庫不論在資料庫管理能力還是在安全性方面都是無可非議的。國內企業使用oracle資料庫的也較多,但是由於oracle不同版本的字符集,給資料顯示 資料備份 資料轉換等實際工作帶來了不少麻煩。一 字符集引數 一旦資料庫建立後,資料庫的字符集是不能改變的。因此,考慮...

oracle 修改字符集

通過 sql select from nls database parameters 來檢查字符集引數 設定 sql shutdown immediate sql startup mount sql alter system enable restricted session sql alter s...

oracle修改字符集

檢視oracle服務端編碼 select from sys.nls database parameters 檢視client編碼 select from sys.nls session parameters 修改客戶端編碼 翻開運轉器進入登錄檔編輯 運轉 regedit 找到hkey local m...