select userenv('language') from dual;
select name,value$ from props$ where name='NLS_CHARACTERSET';
--查询服务器端字符集
select * from nls_database_parameters
--查询客户端字符集
select * from nls_instance_parameters
--会话字符集环境
select * from nls_session_parameters
1.字符集相关知识、如何查看字符集
Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。
如何查询Oracle的字符集ORACLE有三方面的字符集,
一 是oracel server端的字符集,二是oracle client端的字符集;三是dmp文件的字符集。在做数据导入的时候,需要这三个字符集都一致才能正确导入。
查看oracel server端的字符集select userenv('language') from dual;
查看dmp文件的字符集用oracle的exp工具导出的dmp文件也包含了字符集信息,dmp文件的第2和第3个字节记录了dmp文件的字符集。如果dmp文件不大,比如只有几M或几十M,可以用UltraEdit打开(16进制方式),看第2第3个字节的内容,如0354,然后用以下SQL查出它对应的字符集:select nls_charset_name(to_number('0354','xxxx')) from dual
--查看oracel client端的字符集 是注册表里面相应OracleHome的NLS_LANG。(检查客户端注册表,打开注册表编辑程序(RegEdit),在HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/NLS_LANG)还可以在dos窗口里面自己设置,比如: set nls_lang=AMERICAN_AMERICA.ZHS16GBK 这样就只影响这个窗口里面的环境变
查看所有参数:
select * from V$NLS_PARAMETERS;
其中,字符集的关键词是:NLS_CHARACTERSET
其他参数:
language 指定服务器消息的语言。
territory 指定服务器的日期和数字格式。
NLS_CHARACTERSET 指定字符集
还有一些子集可以更明确定义NLS_LANG参数:
NLS_DATE_FORMAT 缺省的日期格式
NLS_DATE_LANGUAGE 缺省的日期语言
NLS_NUMBERIC_CHARACTERS 小数字符和组分隔开
NLS_CURRENCY 本地货币字符
NLS_ISO_CURRENCY ISO货币字符
NLS_SORT 字符排序序列
指定查看关键词:
select value$ from props$ where name='NLS_CHARACTERSET'
有3个参数需要特别注意:有三个参数需要特别注意:
NLS_LANGUAGE NLS_TERRITORY NLS_CHARACTERSET
2 如何修改字符集
一、更改客户端字符集为US7ASCII
D:\>SET NLS_LANG=AMERICAN_AMERICA.US7ASCII
更改客户端字符集为ZHS16GBK
D:\>SET NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
二、更改服务器字符集为ZHS16GBK (实践成功)
SQL> update props$ set value$='ZHS16GBK' WHERE NAME='nls_language';
alter system set nls_language=ZHS16GBK
很多情况下,单纯地去更改服务端的字符集,也无法解决问题,还可能造成大错!
文章出处:DIY部落(http://www.diybl.com/course/7_databases/oracle/Oracleshl/200866/123104.html)
分享到:
相关推荐
7_MYSQL视频教程 字符集操作原理与乱码解决方案character_set_client_character_set_connection_character_set_results
c语言提供的宽字符操作函数集,编程参考。
oracle11g导入报错,很多情况下是字符集不同导致失败,附件为oracle11g更改字符集操作说明,多次实测有效。
查看MySQL支持的字符集: 代码如下:show charset;查看字符集: 代码如下:status下面的更具体: 代码如下:SHOW VARIABLES LIKE ‘character_set_%’;查看排序方式: 代码如下:SHOW VARIABLES LIKE ‘collation_%’;...
修改RedHatEnterpriseLinux4.0操作系统字符集解决乱码问题。
修改oracle数据库字符集详细的操作命令
linux 下的 oracle 导入数据库时出现中文乱码,通过修改字符集格式,修改成支持中文的格式。简单易操作。
文档详细的介绍了如何实现ORACLE数据库字符集的修改操作。
宽字符集 unicode 操作函数
另外,如果在SQL*PLUS中能够输入中文,操作系统缺省应该是支持中文的,但如果在NLS_LANG中的字符集设置为US7ASCII,显然也是不正确的,它没有反映客户端的实际情况。但在实际应用中汉字显示却是正确的,这主要是因为...
修改linux系统客户端、服务端字符集详细操作步骤。
字符集相关定义/MySQL中字符集分析/字符集转换/MySQL字符集变量说明/操作系统字符集说明
10 数据库服务器字符集更改步骤 问题描述: 在客户端插入字符“咪咪”,从数据库中查询显示时出现乱码 处理步骤: 10.1 对数据库做全库导出,备份全库数据,以防故障发生 首先设定客户端的字符集,必须以ZHS16GBK的...
windows下的adb进行pull push操作时会由于字符集问题导致操作失败,这个是我自己修改编译的版本,仅对pull和push两个操作进行了字符集的转换,其他诸如日文,韩文应该也是可以支持的.
oracle11g字符集的修改,本人亲自用过,按照文档内容一步一步操作准没错,不要忘了先将数据备份或导出pdm哦!!!O(∩_∩)O哈哈~
宽字符函数与CHAR函数的详细对比,非常实用
在VS2008中,默认的字符集形式是Unicode,但在VC6.0等工程中,默认的字符集形式是多字节字符集(MBCS:Multi-Byte Character Set),这样导致在VC6.0中非常简单实用的各类字符操作和函数在VS2008环境下运行时会报...
易语言字符串操作源码,字符串操作,字符串_取长度,字符串_取中间,字符串_取左边,字符串_取右边,字符串_替换,到宽字符,到多字节,取文本数据地址,取字节集数据地址,MultiByteToWideChar,WideCharToMultiByte
MySQL数据库操作显⽰数据库创建数据库删除数据库查看数据库的字符集显⽰ 表创建表表选项删除。。。 1、显⽰数据库 语法:SHOW DATABASES; 2创建数据库 语法格式:CREATE DATABASE [IF NOT EXISTS] db_name [CHARSET ...