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;
此時完成字符集轉換。