Oracle字符集与如何查看字符集实操

以下的文章主要教会你如何正确的查看Oracle字符集以及修改字符集的实际操作方案,我们大家都知道Oracle字符集就是一个字节数据的相关解释的所有的符号集合,它有大小之分,有相互的包容关系。

ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。

 

影响oracle数据库字符集最重要的参数是NLS_LANG参数。

 

它的格式如下: NLS_LANG = language_territory.charset

 

它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。

 

其中:

 

Language 指定服务器消息的语言,territory 指定服务器的日期和数字格式,charset 指定字符集。如:AMERICAN _ AMERICA. ZHS16GBK

 

从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。

 

所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。

 

查看数据库Oracle字符集

 

这涉及三方面的字符集,

 

1、是oracel server端的字符集;

 

2、是oracle client端的字符集;

 

3、是dmp文件的字符集。

 

在做数据导入的时候,需要这三个字符集都一致才能正确导入。

 

1、查询oracle server端的字符集

 

有很多种方法可以查出oracle server端的Oracle字符集,比较直观的查询方法是以下这种:

 

 

  1. SQL>select userenv(‘language’) from dual;  

 

结果类似如下:AMERICAN _ AMERICA. ZHS16GBK

 

2、如何查询dmp文件的字符集

 

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

 

 

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

 

ZHS16GBK

 

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

 

 

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

 

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

 

3、查询oracle client端的Oracle字符集

 

这个比较简单。

 

在windows平台下,就是注册表里面相应OracleHome的NLS_LANG。还可以在dos窗口里面自己设置,比如: set nls_lang=AMERICAN_AMERICA.ZHS16GBK

 

这样就只影响这个窗口里面的环境变量。

 

在unix平台下,就是环境变量NLS_LANG。

 

 

  1. $echo $NLS_LANG   
  2. AMERICAN_AMERICA.ZHS16GBK  

 

 

如果检查的结果发现server端与client端字符集不一致,请统一修改为同server端相同的字符集。

 

补充:

 

(1).数据库服务器字符集

 

 

  1. select * from nls_database_parameters  

 

来源于props$,是表示数据库的字符集。

 

(2).客户端字符集环境

 

 

  1. select * from nls_instance_parameters  

 

其来源于v$parameter,表示客户端的Oracle字符集的设置,可能是参数文件,环境变量或者是注册表

 

(3).会话字符集环境

 

 

  1. select * from nls_session_parameters  

 

来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。

 

(4).客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。如果多个设置存在的时候,alter session>环境变量>注册表>参数文件

 

字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如Oracle字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk。

【编辑推荐】

  1. 提高Oracle SQL的执行效率的3个方案
  2. Oracle数据库的性能完全保护的4个项目
  3. Oracle密码文件的实际操作方案介绍
  4. Oracle LogMiner分析工具的应用介绍
  5. Oracle初始参数与当前用户的实操

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/268399.html<

(0)
运维的头像运维
上一篇2025-05-06 21:05
下一篇 2025-05-06 21:06

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

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