zoukankan      html  css  js  c++  java
  • (ORA-12899) 10g数据库导入到11g数据库时报错

    问题:

           10g数据库导入到11g数据库时,部分表的字段会出现ORA-12899的报错,如下:

           IMP-00019: 由于 ORACLE 错误 12899 而拒绝行
           IMP-00003: 遇到 ORACLE 错误 12899
           ORA-12899: 列 "WHNAPROJECT"."COST_BUDGET_MANAGER"."BUDGETCONTENT" 的值太大 (实际值: 2536, 最大值: 2000)

    分析:

          10g数据库的字符集于11g数据库的默认字符集不一致,导致在转换时,字段值会超过设定值,因此需要在导入前将字符集统一。

    解决:

           在将10g数据库导入到11g数据库之前,修改11g数据库字符集为 ZHS16GBK:

    SQL> conn / 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;

    SQL> alter shutdown immedite;

    SQL> startup;

     

           以上代码执行过程中出现

         ERROR at line 1: 
         ORA-12712: new character set must be a superset of old character set 
         提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改,INTERNAL_USE为强制转换的意思: 
         SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK; 
         Database altered. 
         SQL> select * from v$nls_parameters; 

    相关知识:

    1、 查看全部字符集:          select name, value$ from props$ where name like '%NLS%';

    2、查看服务端的字符集:    select userenv('language') from dual;

        HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_OraDb11g_home1/ 中右边框中的 NLS_LANG 键所对应的值为即当前 Oracle 客户端使用的字符集,如 SIMPLIFIED CHINESE_CHINA.ZHS16GBK,再如:american_america.al32utf8

     3、查看服务端字符集:      SQL>  select * from nls_database_parameters;

     4、查看客户端字符集:      SQL> select * from nls_instance_parameters;

     5、查看 session 字符集:    SQL> select * from nls_session_parameters;

  • 相关阅读:
    centos6.5 源码安装 mysql
    centOS系统安装MySQL教程
    CENTOS下搭建SVN服务器
    定位记录,删除后定位到下一条记录上
    Delphi Edit输入+号(加号),不允许显示输入符号,清空Edit,显示事件
    [经常用此练习即可] SQL2000行转列三种方式解答,侧重于第二种方式,第一种需用临时表,第三种方式适合固定方式写入都正确
    Delphi与SQL模糊like通配符查询(转载)
    四舍五入可以用这种形式,保留2位小数!
    APP开发工具对比!!
    FastReport 使用技巧篇
  • 原文地址:https://www.cnblogs.com/lteal/p/3552567.html
Copyright © 2011-2022 走看看