`
tooby
  • 浏览: 117374 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

修改Oracle NLS_CHARACTERSET字符集

    博客分类:
  • SQL
 
阅读更多

NLS_CHARACTERSET是数据库字符集,NLS_NCHAR_CHARACTERSET是国家字符集
ORACLE中有两大类字符型数据,VARCHAR2是按照数据库字符集来存储数据。而NVARCHAR2是按照国家字符集存储数据的。同样,CHAR和NCHAR也一样,一是数据库字符符,一是国家字符集。
字符集不同,二进制码的组合就不同。

 

首先用sys用户登陆oracle
#sqlplus /nolog
SQL>conn sys/sys@score as sysdba;
 


查看服务器端字符集:
SQL>SELECT * FROM NLS_DATABASE_PARAMETERS;
看输出的NLS_CHARACTERSET 字段值,我原来的值是ISO88什么的,不正确。正确的一般服务器端为:ZHS16GBK,客户端也为:ZHS16GBK。
修改开始
 
先停止本数据库服务:
SQL>shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
这些信息是更改正确字符集后的提示信息,一般应该是英文的)

 

再启动数据库

SQL>startup   restrict;   此处要注意启动方式要加 restrict参数
ORACLE 例程已经启动。

Total System Global Area  603979776 bytes
Fixed Size                  1220796 bytes
Variable Size             180358980 bytes
Database Buffers          415236096 bytes
Redo Buffers                7163904 bytes
数据库装载完毕。
数据库已经打开。

 

修改字符集

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> alter database character set JA16SJIS;
 Database altered.

有时执行alter database character set JA16SJIS;语句时会报错:

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

意思是新字符集不是原字符集超集,例如原字符集为ZHS16CGB231280,新字符集zhs16gbk,虽然新字符集比原字符集大,但不存在父子关系,通过以下语句会跳过超集检查:

SQL> alter database character set INTERNAL_USE JA16SJIS;  

 

重启数据库

SQL> shutdown immediate;

SQL> startup;


没错误提示就成功了。
 
 
再此查看服务器端和客户端字符集设置应该已经修该过来了
分享到:
评论

相关推荐

    修改Oracle字符集(character set)

    ### 修改Oracle字符集 #### 适用版本与注意事项 本文档主要介绍了如何在Oracle 9i、10g以及XE版本中修改字符集的方法,并且在10.2.0.1.0版本下进行了成功的测试。需要注意的是,在执行字符集转换的过程中可能会...

    oracle字符集的查看和client字符集的修改

    ### Oracle字符集的查看与客户端字符集的修改 #### 一、Oracle字符集的基本概念 在Oracle数据库系统中,字符集(charset)是用于表示文本数据的编码方式。正确设置和管理字符集对于确保数据的一致性和正确性至关重要...

    Oracle客户端 NLS_LANG 的设置方法

    在Oracle客户端中,`NLS_LANG`是一个重要的环境变量,它用于定义客户端的语言环境设置,包括语言、地域以及字符集等。这对于确保客户端能够正确地解析来自服务器的数据至关重要。 - **LANGUAGE**:指定Oracle消息...

    nls_charset12.jar

    当我们谈论“nls_charset12.jar”这个文件时,它与Oracle 10g数据库的字符集支持息息相关。Oracle 10g是Oracle公司推出的一个版本,提供了一套全面的数据管理和分析工具,但在使用过程中可能会遇到各种问题,其中之...

    怎样修改查看Oracle字符集及怎样修改字符集

    ### 如何查看与修改Oracle数据库字符集 #### 一、查看Oracle数据库字符集的方法 在Oracle数据库中,字符集主要用于确保数据能够正确地存储、检索和处理。了解数据库的字符集对于确保数据的一致性和准确性至关重要...

    Oracle10G_RAC环境下字符集

    总结,修改Oracle 10g RAC环境下的字符集是一个涉及多个步骤的过程,包括停机、修改参数、启动实例以及验证更改。这个过程需要细心操作,确保所有节点的一致性,以保证数据库的正常运行和数据的正确性。同时,理解...

    Oracle 字符集的查看和修改

    ### Oracle字符集的查看与修改详解 #### 一、Oracle字符集概述 Oracle数据库系统支持多种字符集,以便处理各种语言和地区的信息。字符集的选择对于数据的存储和处理至关重要,尤其是在全球化环境中,需要处理多种...

    Oracle 字符集详解

    本篇将深入探讨Oracle字符集的查看、修改、导入导出以及转换原理。 一、Oracle字符集的查看 在Oracle中,可以通过以下SQL查询来查看当前数据库的字符集设置: ```sql SELECT * FROM NLS_DATABASE_PARAMETERS ...

    Oracle 修改字符集

    9. **验证字符集修改**: - 查看数据库字符集: ```sql SQL> select userenv('language') from dual; SQL> show parameter nls_characterset; ``` #### 四、注意事项 - 在修改字符集前,请确保充分了解新旧...

    Oracle数据库字符集问题分析及解决方法.pdf

    - 查询Oracle服务器端字符集:通过运行SQL命令`SELECT value FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET'`,可以从nls_database_parameters表获取数据库的字符集设置。 - 查询Oracle客户端...

    在64位系统下oracle数据库安装和oracle乱码问题

    - **NLS_CHARACTERSET**:指定客户端的字符集,不可在会话级别设置,只能通过修改`NLS_LANG`环境变量来设定。对于中文环境,通常设置为`ZHS16GBK`或`AL32UTF8`等支持中文的字符集。 查询`NLS_LANG`参数的方法是使用...

    linux 下oracle中文乱码字符集设置

    Oracle 数据库中的字符集格式可以通过 SQL 语句查询得到,使用 `select * from nls_database_parameters where parameter='NLS_CHARACTERSET';` 语句可以查询到当前数据库中的字符集格式。然后,使用 `ALTER ...

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

    在进行字符集修改之前,请确保满足以下前提条件: 1. **有足够的权限**:必须具备sysdba权限才能执行这些操作。 2. **备份数据库**:为避免意外情况导致数据丢失,在进行任何更改之前建议对整个数据库进行完整备份...

    oracle中英文字符集切换

    可以通过SQL查询`SELECT * FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET'`来查看服务器字符集,以及在客户端使用`SHOW PARAMETER NLS_CHARACTERSET`命令(在SQL*Plus中)或查询相应的环境变量...

    ORACLE_CHAR_ToolS(ORACLE字符转换)

    1. 确认数据库的全局字符集(NLS_CHARACTERSET)和国家字符集(NLS_NCHAR_CHARACTERSET)。 2. 检查问题表的字符集设置,确保与数据库全局字符集一致。 3. 确认客户端的字符集设置,如SQL*Plus、PL/SQL Developer等...

    Oracle 系统字符集查看实例.pdf

    例如,`NLS_CHARACTERSET` 参数显示了数据库的默认字符集,这里是 `ZHS16GBK`,表明这是一个支持中文的字符集。`NLS_NCHAR_CHARACTERSET` 参数则表示 National Character Set,通常用于存储双字节字符,如 Unicode ...

    OracleXE 导入系统缺少的包 更改字符集sql命令

    2. **修改服务器参数文件(SPFILE)**:如果要永久更改字符集,需要修改SPFILE中的`NLS_CHARACTERSET`参数。这通常需要停机并重启数据库。 3. **修改初始化参数文件(PFILE)**:对于临时更改或测试,可以在实例启动...

    oracle中文出现乱码

    服务端字符集的构成体现在数据字典表 V$NLS_PARAMETERS 的 NLS_LANGUAGE、NLS_TERRITORY、NLS_CHARACTERSET 三项取值上,其中 NLS_CHARACTERSET 的取值就是具体的数据库字符集。如利用查询语句 SQL>SELECT* FROM V$...

    修改ORACLE11G字符集

    ### 修改Oracle 11g字符集 在Oracle数据库管理中,字符集的设置至关重要,它直接影响到数据的存储和检索。对于已经安装并运行的Oracle 11g数据库,如果发现默认字符集不符合需求(例如默认为US7ASCII),则需要进行...

Global site tag (gtag.js) - Google Analytics