zoukankan      html  css  js  c++  java
  • oracle 字符集修改 AL32UTF8 改为 ZHS16GBK

    在使用ORACLE的过程中,会出现各种各样的问题,各种各样的错误,其中ORA-12899就是前段时间我在将数据导入到我本地机器上的时候一直出现的问题.不过还好已经解决了这个问题,现在分享一下,解决方案;
    出现ORA-12899,是字符集引起的,中文在UTF-8中占3个字节,ZHS16GBK中占2个字节,而源dmp文件字符集是ZHS16GBK库里倒出来的数据,现在要导入到目标字符集为UTF-8的库里,所以会出现ORA-12899
    其实只要修改一下ORACLE 的字符集就可以很好的解决这个问题;

    Microsoft Windows [版本 10.0.18362.10024]
    (c) 2019 Microsoft Corporation。保留所有权利。
    
    C:Usersasus>sqlplus /nolog
    
    SQL*Plus: Release 18.0.0.0.0 - Production on 星期四 3月 12 14:34:38 2020
    Version 18.4.0.0.0
    
    Copyright (c) 1982, 2018, Oracle.  All rights reserved.
    
    SQL> conn / as sysdba
    已连接。
    SQL> select userenv('language') from dual;
     
    USERENV('LANGUAGE')
    --------------------------------------------------------------------------------
     
    SIMPLIFIED CHINESE_CHINA.AL32UTF8
     
    SQL> shutdown immediate
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> STARTUP MOUNT EXCLUSIVE;
    ORACLE 例程已经启动。
     
    Total System Global Area 2533359616 bytes
    Fixed Size                  3835256 bytes
    Variable Size             738200200 bytes
    Database Buffers         1778384896 bytes
    Redo Buffers               12939264 bytes
    数据库装载完毕。
    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 INTERNAL_USE ZHS16GBK;
     
    数据库已更改。
     
    SQL> ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE AL16UTF16;
     
    数据库已更改。
     
    SQL> SHUTDOWN IMMEDIATE
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> STARTUP
    ORACLE 例程已经启动。
     
    Total System Global Area 2533359616 bytes
    Fixed Size                  3835256 bytes
    Variable Size             738200200 bytes
    Database Buffers         1778384896 bytes
    Redo Buffers               12939264 bytes
    数据库装载完毕。
    数据库已经打开。
    SQL> select userenv('language') from dual;
     
    USERENV('LANGUAGE')
    ----------------------------------------------------
    SIMPLIFIED CHINESE_CHINA.ZHS16GBK
     
    SQL> col parameter format a32;
    SQL> col value format a32;
    SQL> select * from nls_database_parameters;
     
    PARAMETER                        VALUE
    -------------------------------- --------------------------------
    NLS_RDBMS_VERSION                12.1.0.2.0
    NLS_NCHAR_CONV_EXCP              FALSE
    NLS_LENGTH_SEMANTICS             BYTE
    NLS_COMP                         BINARY
    NLS_DUAL_CURRENCY                $
    NLS_TIMESTAMP_TZ_FORMAT          DD-MON-RR HH.MI.SSXFF AM TZR
    NLS_TIME_TZ_FORMAT               HH.MI.SSXFF AM TZR
    NLS_TIMESTAMP_FORMAT             DD-MON-RR HH.MI.SSXFF AM
    NLS_TIME_FORMAT                  HH.MI.SSXFF AM
    NLS_SORT                         BINARY
    NLS_DATE_LANGUAGE                AMERICAN
     
    PARAMETER                        VALUE
    -------------------------------- --------------------------------
    NLS_DATE_FORMAT                  DD-MON-RR
    NLS_CALENDAR                     GREGORIAN
    NLS_NUMERIC_CHARACTERS           .,
    NLS_NCHAR_CHARACTERSET           AL16UTF16
    NLS_CHARACTERSET                 ZHS16GBK
    NLS_ISO_CURRENCY                 AMERICA
    NLS_CURRENCY                     $
    NLS_TERRITORY                    AMERICA
    NLS_LANGUAGE                     AMERICAN
     
    已选择 20 行。
     

     到这里我们的字符集就更改过来了

  • 相关阅读:
    Best Time to Buy and Sell Stock(动态规划)
    word break
    Container With Most Water
    Partition List(链表的插入和删除操作,找前驱节点)
    取样问题(编程珠玑)
    统计指标
    脚本化加载文件与转储
    azkaban调度
    hive自定义UDTF函数叉分函数
    hive数据仓库建设
  • 原文地址:https://www.cnblogs.com/0pen1/p/12469180.html
Copyright © 2011-2022 走看看