oracle 字符集修改 AL32UTF8 改为 ZHS16GBK[亲测有效]

oracle 字符集修改 AL32UTF8 改为 ZHS16GBK[亲测有效]在使用ORACLE的过程中,会出现各种各样的问题,各种各样的错误,其中ORA-12899就是前段时间我在将数据导入到我本地机器上的时候一直出现的问题.不过还好已经解决了这个问题,现在分享一下,解决方案

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 行。
 

代码100分

 

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

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/9571.html

(0)
上一篇 2023-02-05
下一篇 2023-02-05

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注