Oracle ORA 12899錯誤的解決方法

2021-08-22 10:39:12 字數 1566 閱讀 4255

ora-12899錯誤,一般在匯入oracle資料時會報,指插入的資料長度超出欄位的設定長度,這是由於oracle字符集不同,漢字佔的長度不同造成的,比如中文在zhs16gbk中佔2個位元組,在utf-8中卻佔3個位元組。下面介紹通過修改字符集解決該錯,另外可以增加字段長度解決。

檢視字符集的方法可以用pl/sql develop —->reports(報告)—->dba—->nls database parameters,

開啟cmd,開始操作

修改資料庫字符集為:zhs16gbk

檢視伺服器端字符集sql > select * from vnl

spar

amet

erst

elne

t到服務

器,執行

: nls

para

mete

rste

lnet

到伺服器

,執行:

sqlplus /nolog

sql>conn / as sysdba

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

然後執行以下命令:

sql>shutdown immediate

資料庫已經關閉。

已經解除安裝資料庫。

oracle 例程已經關閉。

sql>startup mount

oracle 例程已經啟動。

。。。

資料庫裝載完畢。

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

資料庫已經關閉。

已經解除安裝資料庫。

oracle 例程已經關閉。

sql>startup

oracle 例程已經啟動。

。。。

資料庫裝載完畢。

資料庫已經開啟。

執行資料匯入imp任務,將不會報類似錯誤。

Oracle ORA 01110錯誤解決方法

在資料庫伺服器上,建立了乙個使用者test,然後使用命令drop user test cascade刪除了使用者,接著也刪除了這個使用者的資料檔案 opt oracle oradata test testdata.dbf。當在登入資料庫時,能夠啟動例項,但是打不開資料庫,系統報錯 ora 01157...

Oracle ORA 03113錯誤解決辦法

昨天由於突然停電,資料庫主機重新開機。現在,開啟資料庫,總是報 ora 03113 通訊通道的檔案結尾 sql conn assysdba 已連線到空閒例程。sql startup oracle 例程已經啟動。total systemglobalarea 535662592 bytes fixeds...

ORACLE ORA 03113錯誤解決方案

問題描述 資料庫無法登陸,sqlplus使用應用使用者登陸卡死在sqlplus命令後。使用sysdba使用者可以登入,關閉資料庫後重新啟動,發現資料庫僅可啟動到mount狀態,無法成功open,報ora 03113錯誤 end of file on communication channel。解決方...