出現ora-12899,是字符集引起的,中文在utf-8中佔3個位元組,zhs16gbk中佔2個位元組,而源dmp檔案字符集是zhs16gbk庫里倒出來的資料,現在要匯入到目標字符集為utf-8的庫里,所以會出現ora-12899
其實只要修改一下oracle 的字符集就可以很好的解決這個問題;
sqlplus /nolog
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 ofold character set
報字符集不相容,此時下internal_use指令不對字符集超集進行檢查:
可以執行下一步 跳轉錯誤操作
sql>alter database character set internal_use zhs16gbk;
sql>shutdown immediate
sql>startup
再次用imp匯入,就沒有問題了。
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...