zoukankan      html  css  js  c++  java
  • oracle导入数据库报错:IMP-00019: 由于 ORACLE 错误 12899 而拒绝行 IMP-00003: 遇到 ORACLE 错误 12899

    主要是字符集 成 导入的Oracle服务器的字符集 对应不上.

    以下方案为是修改服务器的字符集.    这样会影响之前的Oracle其他数据库的数据显示(正式服务器慎用)

    个人认为应该修改导出文件的字符集比较合理一些.  没测试过.

    情景重现:

    从oracle 10g环境下exp出来的数据,imp到10g数据库的时候就出现下面这个错误。

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

    IMP-00003: 遇到 ORACLE 错误 12899
    ORA-12899: 列 "JACKEYJ"."JK_REGISTER"."OPNAME" 的值太大 (实际值: 21, 最大值: 20)

    列 1 523

    可能的原因:操作系统类型不同导致的。


    解决方法:

    修改oracle 10g的字符集
    Oracle

    修改数据库字符集为:ZHS16GBK

    在oracle目录下 打开应用程序开发--> SQL Plus,然后:

    查看服务器端字符集SQL > select * from V$NLS_PARAMETERS
    修改:$sqlplus /nolog
    SQL>conn / as sysdba  (ps: 在cmd中可以直接粘贴)
    若此时数据库服务器已启动,则先执行 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  RA-12721: operation cannot execute when other sessions are active
    1、若出现上面的错误,使用下面的办法进行修改,使用INTERNAL_USE可以跳过超集的检查:
    SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;
    ORA-12712: new character set must be a superset of old character set
    RROR at line 1:
    2、结果报错,提示新字符集必须是老字符集的超集。
    于是强制转换
    >ALTER DATABASE character set INTERNAL_USE ZHS16GBK;

    最后步骤:
    >shutdown immediate;
    >STARTUP;

    引用: http://www.xuebuyuan.com/2070423.html

  • 相关阅读:
    Linux文件默认权限和umask笔记
    Linux文件默认权限和umask笔记
    Linux关于文件的权限笔记
    Linux关于文件的权限笔记
    Linux文件和目录权限笔记
    Linux文件和目录权限笔记
    Linux文件目录基础笔记
    Linux文件目录基础笔记
    spark在collect收集数据的时候出现outOfMemoryError:java heap space
    查看hadoop压缩方式
  • 原文地址:https://www.cnblogs.com/chencidi/p/5546483.html
Copyright © 2011-2022 走看看