轉載自:
http://blog.163.com/liuqiuliang_yss.popo/blog/static/4581691020095195107618/問題:
IMP-00019: 由于 ORACLE 錯誤 12899 而拒絕行
IMP-00003: 遇到 ORACLE 錯誤 12899
ORA-12899: 列 "JACKEYJ"."JK_REGISTER"."OPNAME" 的值太大 (實際值: 21, 最大值: 20)
列 1 523
從9i環境下exp出來的數據,imp到10g數據庫的時候就出現這個錯誤。
解決方案:
修改oracle 10g的字符集
Oracle
修改數據庫字符集為:ZHS16GBK
查看服務器端字符集SQL > select * from V$NLS_PARAMETERS
修改:$sqlplus /nolog
SQL>conn / 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