zoukankan      html  css  js  c++  java
  • ORACLE在IMP时候出现数据丢失

    IMP-00019: 由于 ORACLE 错误 12899 而拒绝行

    IMP-00003: 遇到 ORACLE 错误 12899
    ORA-12899: 列 "JACKEYJ"."JK_REGISTER"."OPNAME" 的值太大 (实际值: 21, 最大值: 20)
     
    列 1 523
    从10g环境下exp出来的数据,imp到11g数据库的时候就出现这个错误。
     
    解决方案:
     
    修改oracle 11g的字符集
    修改数据库字符集为:ZHS16GBK
    以下为sqlplus命令操作。
    查看服务器端字符集SQL > select * from V$NLS_PARAMETERS
    修改:$sqlplus /nolog  www.2cto.com  
    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
     
    再次导入,问题解决。

     
    ======================

    个人批注:
    常用中文字符用utf-8编码占用3个字节(大约2万多字),但超大字符集中的更大多数汉字要占4个字节
    ,而GBK都是两个字节,所以当原来编码是GBK的导入UTF8的数据库的时候就会出现如上错误。解决方法就是更改数据库编码(方法如上),或者在导出之前处理好。

     
    ======================
    原连接:

    http://blog.sina.com.cn/s/blog_69a657190101642s.html
  • 相关阅读:
    learning scala view collection
    scala
    learning scala dependency injection
    learning scala implicit class
    learning scala type alise
    learning scala PartialFunction
    learning scala Function Recursive Tail Call
    learning scala Function Composition andThen
    System.Threading.Interlocked.CompareChange使用
    System.Threading.Monitor的使用
  • 原文地址:https://www.cnblogs.com/taleche/p/7444340.html
Copyright © 2011-2022 走看看