`

Oracle字符集问题总结

阅读更多
(1):NLS=National Language Support 国家语言支持
(2):它有三个组成部分(语言、地域和字符集),
(3)字符集 一是oracel server端的字符集,二是oracle client端的字符集;三是dmp文件的字符集。
    a: server端的字符集
     SQL> select userenv('language') from dual;

     USERENV('LANGUAGE')
    ----------------------------------------------------
     SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    b:client
  方式一更改:
C:\Documents and Settings\Administrator>set nls_lang=SIMPLIFIED CHINESE_CHINA.ZH
S16GBK
方式二更改:

>echo %nls_lang%  这个方式用dos看在window系统下
    window regedit /NLS_LANG的键值
  
SIMPLIFIED CHINESE_CHINA.ZHS16GBK 


------以下尚未验证!
    c:
dmp文件的字符集
用oracle的exp工具导出的dmp文件也包含了字符集信息,dmp文件的第2和第3个字节记录了dmp文件的字符集。如果dmp文件不大,比如只有几M或几十M,可以用UltraEdit打开(16进制方式),看第2第3个字节的内容,如0354,然后用以下SQL查出它对应的字符集:

  SQL> select nls_charset_name(to_number('0354','xxxx')) from dual;

  ZHS16GBK

  如果dmp文件很大,比如有2G以上(这也是最常见的情况),用文本编辑器打开很慢或者完全打不开,可以用以下命令(在unix主机上):

  cat exp.dmp |od -x|head -1|awk '{print $2 $3}'|cut -c 3-6

  然后用上述SQL也可以得到它对应的字符集。

(4):我们最常用的两种字符集ZHS16GBK和ZHS16CGB231280之间不存在子集和超集关系
(5):
1、修改server端字符集(不建议使用)

  在oracle 8之前,可以用直接修改数据字典表props$来改变数据库的字符集。但oracle8之后,至少有三张系统表记录了数据库字符集的信息,只改props$表并不完全,可能引起严重的后果。正确的修改方法如下:

  $sqlplus /nolog

  SQL>conn / as sysdba;

  若此时数据库服务器已启动,则先执行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 DATABASE national CHARACTER SET ZHS16GBK;

  SQL>SHUTDOWN IMMEDIATE;

  SQL>STARTUP

分享到:
评论

相关推荐

    Oracle 字符集详解

    Oracle字符集是数据库管理...总结,Oracle字符集是数据库管理的关键部分,理解和正确配置字符集能确保数据的准确性和系统的稳定性。在实际操作中,需根据具体需求选择适当的字符集,并注意字符集变更可能导致的风险。

    oracle 字符集修改命令

    ### Oracle字符集修改命令详解 #### 一、引言 在Oracle数据库的管理与维护过程中,字符集的正确设置对于确保数据的正确显示与处理至关重要。由于不同的地区和语言环境对于字符编码的需求各异,因此有时可能需要...

    Oracle 字符集的查看和修改

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

    jdbc连接oracle字符集不同出现乱码

    ### JDBC 连接 Oracle 字符集不同导致乱码问题解析及解决方案 #### 问题背景 在使用 JDBC(Java Database Connectivity)连接 Oracle 数据库时,可能会遇到一个常见的问题:从远程 Oracle 数据库获取的数据出现乱码...

    ORACLE 字符集总结

    本文将深入探讨Oracle字符集的原理、查询方法以及如何处理字符集不一致的问题。 首先,Oracle字符集是一个定义了字节数据解释方式的集合,它具有不同的大小和包容性。Oracle支持多种国家语言,允许用户以本地化的...

    Oracle数据库字符集问题总结

    在不同数据库做数据迁移、同其它系统交换数据等,常常因为字符集不同而导致迁移失败或数据库内数据变成乱码。现将oracle字符集相关的一些知识做了个简单总结

    问题共享:修改oracle字符集

    通过对Oracle字符集的修改,我们可以有效解决多语言环境中数据处理的乱码问题,提升系统的国际化能力。然而,需要注意的是,字符集更改是一个较为复杂的过程,涉及到多个组件的一致性调整。因此,在实际操作中务必...

    ORACLE 字符集简介

    ### ORACLE 字符集简介 #### 一、字符集基本概念 **ORACLE数据库字符集**,也称为Oracle全球化支持...通过本文的介绍,希望能够帮助读者更好地理解和掌握Oracle字符集的相关知识,从而在实际应用中更加得心应手。

    熟知Oracle字符集

    根据提供的文件信息,本文将详细解析Oracle字符集的相关知识点,包括Oracle字符集的基本概念、配置参数、以及如何在Oracle数据库中管理和使用字符集。 ### 一、Oracle字符集概述 #### 1.1 什么是Oracle字符集 ...

    oracle字符集修改

    ### Oracle字符集修改知识点 #### 一、Oracle字符集概述 在Oracle数据库中,字符集是一种用于定义如何存储和处理文本数据的标准。字符集的选择对于确保数据正确显示和比较至关重要。Oracle提供了两种主要类型的...

    Oracle_字符集的查看和修改

    ### Oracle 字符集的查看与修改 #### 一、Oracle 字符集概述 **Oracle 字符集** 是指 Oracle ...在实际应用中,根据具体的业务需求选择合适的字符集配置,并采取适当的措施来避免因字符集问题导致的数据丢失或损坏。

    oracle数据库的字符集

    ### Oracle数据库中的字符集 #### 一、字符集的基本概念 在Oracle数据库中,字符集是一个非常关键的概念,它直接关系到数据的正确存储和显示。字符集在创建数据库时被指定,并且在创建后通常不能更改。因此,选择...

    Net框架联合Oracle字符集问题研究.pdf

    Net框架联合Oracle字符集问题研究主要探讨了在使用.NET框架开发应用程序并与Oracle数据库交互时遇到的字符集不兼容问题,特别是对于汉字生僻字的处理。问题源于在系统升级或整合过程中,某些生僻字无法正常显示,...

    Oracle切换客户端字符集

    2. Oracle字符集:Oracle支持多种字符集,如AL32UTF8(Unicode的UTF-8编码)、WE8ISO8859P1(西欧语言)等。数据库服务器和客户端需要保持字符集一致,以避免乱码问题。 二、客户端字符集设置 1. sqlnet.ora文件...

Global site tag (gtag.js) - Google Analytics