ORA-12899: value too large for column (actual: 27, maximum: 20)錯誤解決


  oracle11g導入數據時報以下錯誤,這是因為原來數據庫的編碼是GBK的,每個漢字兩個字節,但新數據庫是UTF-8的,每個漢字是三個字節的,導致超過長度了。

  解決方法:

  打開cmd命令窗口,輸入“sqlplus /nolog”,進入“SQL>”的輸入符下,按照下面給出的命令一次執行就可以了。

  

SQL>connect username/password 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 of old character set

此時報錯,不必慌張。提示新字符集必須是超集,此時INTRENAL_USE指令不對字符集超集進行檢查。輸入以下命令即可:

SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP;

此時完成字符集轉換。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM