`

修改 Oracle10g 数据库字符集的方法

阅读更多

 

修改oracle10g数据库字符集的方法:

 

 

----------------------------------------------------------------------------------------------------

 

SQL> select name,value$ from props$ where name like '%NLS%';

 

 

SQL> alter database character set zhs16gbk;

alter database character set zhs16gbk

*

ERROR at line 1:

ORA-12712: new character set must be a superset of old character set

 

SQL> ALTER DATABASE character set INTERNAL_USE zhs16gbk;

 

SQL> select value from nls_database_parameters where parameter='NLS_CHARACTERSET';

 

 

 

 

oracle数据库在导入不同字符集的数据时经常会出现以下类似问题:

 

IMP-00017: following statement failed with ORACLE error 2299:

"ALTER TABLE "TMPUSERINFO" ADD UNIQUE ("MDN") USING INDEX PCTFREE 10 INITRA"

"NS 2 MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1) TABL"

"ESPACE "JLTGAME" LOGGING ENABLE"

IMP-00003: ORACLE error 2299 encountered

ORA-02299: cannot validate (JLTGAME.SYS_C003199) - duplicate keys found

IMP-00017: following statement failed with ORACLE error 2299:

"ALTER TABLE "TMPUSERINFO" ADD UNIQUE ("USERNAME") USING INDEX PCTFREE 10 I"

"NITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1)"

" TABLESPACE "JLTGAME" LOGGING ENABLE"

IMP-00003: ORACLE error 2299 encountered

ORA-02299: cannot validate (JLTGAME.SYS_C003200) - duplicate keys found

 

----------------------------------------------------------------------------------------------------

 

 

 

 

解决办法:修改数据库字符集

 

----------------------------------------------------------------------------------------------------

重点:ALTER DATABASE character set INTERNAL_USE zhs16gbk;  # 使用INTERNAL_USE可以跳过超集的检查,

----------------------------------------------------------------------------------------------------

 

 

SQL> connect sys/test123@szdb as sysdba;

Connected to an idle instance.

SQL> startup 

ORACLE instance started.

 

Total System Global Area 235999352 bytes

Fixed Size 450680 bytes

Variable Size 201326592 bytes

Database Buffers 33554432 bytes

Redo Buffers 667648 bytes

Database mounted.

Database opened.

SQL> select name,value$ from props$ where name like '%NLS%';

 

NAME

------------------------------------------------------------

VALUE$

--------------------------------------------------------------------------------

NLS_LANGUAGE

AMERICAN

 

NLS_TERRITORY

AMERICA

 

NLS_CURRENCY

$

 

 

NAME

------------------------------------------------------------

VALUE$

--------------------------------------------------------------------------------

NLS_ISO_CURRENCY

AMERICA

 

NLS_NUMERIC_CHARACTERS

.,

 

NLS_CHARACTERSET

WE8ISO8859P1

 

 

NAME

------------------------------------------------------------

VALUE$

--------------------------------------------------------------------------------

NLS_CALENDAR

GREGORIAN

 

NLS_DATE_FORMAT

DD-MON-RR

 

NLS_DATE_LANGUAGE

AMERICAN

 

 

NAME

------------------------------------------------------------

VALUE$

--------------------------------------------------------------------------------

NLS_SORT

BINARY

 

NLS_TIME_FORMAT

HH.MI.SSXFF AM

 

NLS_TIMESTAMP_FORMAT

DD-MON-RR HH.MI.SSXFF AM

 

 

NAME

------------------------------------------------------------

VALUE$

--------------------------------------------------------------------------------

NLS_TIME_TZ_FORMAT

HH.MI.SSXFF AM TZR

 

NLS_TIMESTAMP_TZ_FORMAT

DD-MON-RR HH.MI.SSXFF AM TZR

 

NLS_DUAL_CURRENCY

$

 

 

NAME

------------------------------------------------------------

VALUE$

--------------------------------------------------------------------------------

NLS_COMP

BINARY

 

NLS_LENGTH_SEMANTICS

BYTE

 

NLS_NCHAR_CONV_EXCP

FALSE

 

 

NAME

------------------------------------------------------------

VALUE$

--------------------------------------------------------------------------------

NLS_NCHAR_CHARACTERSET

AL16UTF16

 

NLS_RDBMS_VERSION

9.2.0.1.0

 

 

20 rows selected.

 

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup mount

ORACLE instance started.

 

Total System Global Area 235999352 bytes

Fixed Size 450680 bytes

Variable Size 201326592 bytes

Database Buffers 33554432 bytes

Redo Buffers 667648 bytes

Database mounted.

SQL> alter session set sql_trace=true;

 

Session altered.

 

SQL> alter system enable restricted session;

 

System altered.

 

SQL> alter system set job_queue_processes=0;

 

System altered.

 

SQL> alter system set aq_tm_processes=0;

 

System altered.

 

SQL> alter database open;

 

Database altered.

 

SQL> set linesize 120;

SQL> alter database character set zhs16gbk;

alter database character set zhs16gbk

*

ERROR at line 1:

ORA-12712: new character set must be a superset of old character set

 

SQL> ALTER DATABASE character set INTERNAL_USE zhs16gbk;  # 使用INTERNAL_USE可以跳过超集的检查,ALTER DATABASE character set INTERNAL_USE 

 

Database altered.

 

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> STARTUP

ORACLE instance started.

 

Total System Global Area 235999352 bytes

Fixed Size 450680 bytes

Variable Size 201326592 bytes

Database Buffers 33554432 bytes

Redo Buffers 667648 bytes

Database mounted.

Database opened.

SQL> 

SQL> select name,value$ from props$ where name like '%NLS%';

 

NAME

------------------------------

VALUE$

------------------------------------------------------------------------------------------------------------------------

NLS_LANGUAGE

AMERICAN

 

NLS_TERRITORY

AMERICA

 

NLS_CURRENCY

$

 

 

NAME

------------------------------

VALUE$

------------------------------------------------------------------------------------------------------------------------

NLS_ISO_CURRENCY

AMERICA

 

NLS_NUMERIC_CHARACTERS

.,

 

NLS_CHARACTERSET

ZHS16GBK

 

 

NAME

------------------------------

VALUE$

------------------------------------------------------------------------------------------------------------------------

NLS_CALENDAR

GREGORIAN

 

NLS_DATE_FORMAT

DD-MON-RR

 

NLS_DATE_LANGUAGE

AMERICAN

 

 

NAME

------------------------------

VALUE$

------------------------------------------------------------------------------------------------------------------------

NLS_SORT

BINARY

 

NLS_TIME_FORMAT

HH.MI.SSXFF AM

 

NLS_TIMESTAMP_FORMAT

DD-MON-RR HH.MI.SSXFF AM

 

 

NAME

------------------------------

VALUE$

------------------------------------------------------------------------------------------------------------------------

NLS_TIME_TZ_FORMAT

HH.MI.SSXFF AM TZR

 

NLS_TIMESTAMP_TZ_FORMAT

DD-MON-RR HH.MI.SSXFF AM TZR

 

NLS_DUAL_CURRENCY

$

 

 

NAME

------------------------------

VALUE$

------------------------------------------------------------------------------------------------------------------------

NLS_COMP

BINARY

 

NLS_LENGTH_SEMANTICS

BYTE

 

NLS_NCHAR_CONV_EXCP

FALSE

 

 

NAME

------------------------------

VALUE$

------------------------------------------------------------------------------------------------------------------------

NLS_NCHAR_CHARACTERSET

AL16UTF16

 

NLS_RDBMS_VERSION

9.2.0.1.0

 

 

20 rows selected.

 

 

SQL> 

 

----------------------------------------------------------------------------------------------------

 

分享到:
评论

相关推荐

    修改Oracle数据库字符集的方法

    ### 修改Oracle数据库字符集的方法 #### 背景与意义 在使用Oracle数据库的过程中,可能会遇到需要更改数据库字符集的情况。这通常发生在原有字符集不能满足新的业务需求时,例如需要支持更多的语言或特殊字符。...

    oracle 10g xe 版本更改数据库字符集

    ### Oracle 10g XE 版本更改数据库字符集 在进行Oracle 10g XE数据库的字符集修改时,需要理解几个关键的概念和技术点。本文将详细介绍如何更改Oracle 10g XE数据库的字符集,并提供具体的操作步骤。 #### 一、...

    Oracle11g 字符集 AL32UTF8 修改为ZHS16GBK

    在Oracle11g环境下,可能会遇到需要更改数据库字符集的情况,例如从AL32UTF8修改为ZHS16GBK。这种变更通常发生在需要支持特定语言环境的应用场景中,尤其是当应用主要面向中文用户时,采用ZHS16GBK字符集可以更好地...

    oracle10g数据库安装说明文档

    Oracle 10g数据库安装教程 Oracle 10g 是一款功能强大的关系型数据库管理系统,广泛应用于企业级数据存储和管理。本安装说明主要针对Windows操作系统,详细指导如何正确安装Oracle 10g数据库服务器,并配置iES500 ...

    ORACLE11g更改字符集

    注意,这里使用的是`INTERNAL_USE`关键字,这是因为直接更改数据库字符集可能会遇到ORA-12712错误,表明新字符集必须包含旧字符集的所有字符。 8. **验证字符集更改**:通过查询`V$NLS_PARAMETERS`视图来确认字符集...

    Linux 下修改Oracle 10G的字符集:WE8ISO8859P1 修改为 ZHS16GBK

    通过上述步骤,我们可以在Linux环境下成功地将Oracle 10G数据库的字符集从WE8ISO8859P1更改为ZHS16GBK。这对于支持中文环境下的数据处理具有重要意义,同时也为数据库的国际化提供了支持。需要注意的是,在进行此类...

    修改ORACLE11G字符集

    对于已经安装并运行的Oracle 11g数据库,如果发现默认字符集不符合需求(例如默认为US7ASCII),则需要进行字符集的修改。下面将详细介绍修改Oracle 11g字符集的具体方法和步骤。 #### 1. 检查当前字符集设置 在...

    oracle修改字符集

    针对这种情况,我们可以按照以下步骤来修改Oracle 11g数据库的字符集,使其更改为ZHS16GBK。 首先,确保你有数据库的系统管理员权限,因为修改字符集需要以SYSDBA身份进行。在Windows环境下,打开命令行窗口(cmd)...

    Oracle10g字符集设置,解决中文乱码

    Oracle 10g字符集设置是数据库管理中的一个重要环节,特别是在处理中文数据时,正确的字符集配置至关重要。在Windows环境下,Oracle 10g客户端的安装可能会遇到中文乱码问题,这通常是因为新安装的客户端与旧版本...

    linux上手工创建oracle 10g数据库

    在Linux环境下手工创建Oracle 10g数据库是一项高级的IT操作,涉及到系统配置、环境变量设置、数据库参数调整以及脚本执行等多个环节。以下是对这一过程的详细解析,旨在为那些希望深入理解并掌握在Linux操作系统上...

    Oracle 字符集详解

    Oracle字符集是数据库管理系统Oracle中的一个重要概念,它决定了数据库如何存储和处理文本数据。字符集不仅影响着数据的准确性和一致性,还与全球化应用、数据迁移和数据交换密切相关。本篇将深入探讨Oracle字符集的...

    Oracle10G_RAC环境下字符集

    本篇文章将详细阐述在Oracle 10g RAC环境下如何修改字符集,同时,这些步骤也可以为修改其他数据库参数提供一定的参考。 首先,修改字符集前的准备工作至关重要。确保所有相关的数据和应用都已备份,并了解当前...

    oracle10g字符集的查看与修改.doc

    在Oracle 10g中,数据库字符集是在创建数据库时设定的,一般不建议后期修改。数据库字符集决定了CHAR、VARCHAR2、CLOB、LONG等数据类型的存储格式,同时也影响表名、列名和PL/SQL变量的表示。国家字符集(NATIONAL ...

    修改oracle10字符集步骤

    修改Oracle 10g数据库的字符集是一项涉及多个步骤的复杂操作,需要仔细规划和谨慎执行。通过上述步骤,可以安全地将数据库的字符集从一个编码方案转换到另一个,以满足不断变化的业务需求。在整个过程中,保持数据的...

    Oracle切换客户端字符集

    Oracle数据库系统支持多种字符集,以适应全球化的数据存储需求。字符集定义了数据库如何存储和显示字符,对于处理多语言环境尤为重要。在某些情况下,用户可能需要在客户端侧更改字符集,以便正确地显示或处理特定...

    oracle11g数据库安装手册

    Oracle11g数据库安装手册 Oracle11g数据库安装手册是指Oracle11g数据库的安装全过程,涵盖了从安装文件的选择到数据库的启动的所有步骤。下面是详细的知识点: 一、安装前的准备 * 下载Oracle11g安装文件 * 了解...

    Oracle10g数据库在IBM AIX5_3上的详细安装步骤

    Oracle 10g数据库在IBM AIX 5.3操作系统上的安装是一个复杂的过程,涉及到多个步骤和注意事项。本文将详细阐述这一过程,帮助你成功在AIX环境下搭建Oracle数据库。 首先,准备工作至关重要。确保你的AIX系统满足...

    Oracle10g数据库DBA2官方资料OCP

    ### Oracle10g数据库DBA2官方资料OCP #### Oracle Database 10g Manageability Goals Oracle Database 10g 引入了一系列管理性目标,旨在提高数据库系统的可管理性和自动化水平。这些目标包括: - **自动化例行...

Global site tag (gtag.js) - Google Analytics