Oracle字符集(总结)

1、数据库字符集

数据库字符集包括两个字符集:数据库字符集和国家字符集,都是在创建数据库的时候指定的。

1.1、查询当前数据库的字符集

[email protected]>col value for a30

[email protected]>select * from nls_database_parameters

2   where parameter in(‘NLS_CHARACTERSET‘,‘NLS_NCHAR_CHARACTERSET‘);

PARAMETER                      VALUE

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

NLS_CHARACTERSET        UTF8

NLS_NCHAR_CHARACTERSET                  AL16UTF16

参数NLS_CHARACTERSET说明数据库字符集为UTF8,

参数NLS_NCHAR_CHARACTERSET说明国家字符集为AL16UTF16

1.2、修改字符集

在数据库的mount状态执行如下命令;

alter database character set utf8;

该命令不会对数据库内部的字符集进行转换,只是修改数据库中有关字符集的配置信息,因为如果是严格的超集,那么新的字符集对已有字符的编码是一样的,因些不需要改变。但是如果不是超集,则会报错,就只能以新的字符集重新创建数据库。

Oracle提供了一个非公开的命令:

alter database character set internal_convert <NEW_CHARACTER_SET_NAME>

该命令会绕开超子集的校验,而直接对字符集配置信息进行修改。

2、服务器端字符集

在服务器端有关语言由初始化参数NLS_LANGUAGE来配置。

2.1、查询参数NLS_LANGUATE的值

[email protected]>show parameter nls_language;

NAME                                           TYPE       VALUE

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

nls_language                                   string       AMERICAN

2.2、参数NLS_LANGUAGE决定两个参数的默认值

[email protected]>show parameter nls_date_format;

NAME                                           TYPE       VALUE

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

nls_date_format                              string       YYYY-MM-DD HH24:MI:SS

[email protected]>show parameter nls_sort

NAME                                           TYPE       VALUE

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

nls_sort                              string       BINARY

2.3、查询参数NLS_TERRITORY的值

[email protected]>show parameter nls_territory;

NAME                                           TYPE       VALUE

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

nls_territory                                    string       AMERICA

2.4、查询数据字典v$nsl_valid_values的不同参数值

[email protected]>select distinct parameter from v$nls_valid_values;

PARAMETER

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

CHARACTERSET

SORT

TERRITORY

LANGUAGE

通过输出知道数据字典v$nls_valid_values可以查询以下参数的可用值:

CHARACTERSET(数据库字符集)

SORT(排序方式)

TERRITORY(区域)

LANGUAGE(语言)

3、客户端字符集

3.1、介绍

在客户端,通过设置环境变量来定义客户端的字符集。该环境变量为如下定义:

NLS_LANG=<language>_<territory>.<client character set>

1)<language>:用来显示Oracle消息、年月的名称(例如12月是应该显示“Dec”还是“12月”),以及默认的排序机制。对应服务器的初始化参数为NLS_LANGUAGE。

2)<terriory>:用来显示默认的日期格式、数字格式,以及货币格式等,对应服务器的初始化参数为NLS_TERRITORY。

3)<client character set>:客户端使用的字符集,对应服务器的初始化参数为NLS_CHARACTERSET。

3.2、具体操作

(1)在操作系统提示符下,将NLS_LANG变量设置为american_america.utf8,并且调整默认的日期显示。

在Windows系统中可以使用如下所示的命令:

c:/>set NLS_LANG=american_america.utf8

c:/>set NLS_DATE_FORMAT=Day dd Month yyyy

或者在Unix系统中使用如下所示的命令:

export NLS_LANG=american_america.utf8

export NLS_DATE_FORMAT=‘YYYY-MM-DD HH24:MI:SS ‘

(2)在同一个操作系统会话中启动SQL*Plus,并且作为用户SYSTEM进行连接。

(3)使用下面的命令显示当前的日期:

select sysdate from dual;

3.3、查询oracleserver端的字符集

SQL> select userenv(‘language‘) from dual;

USERENV(‘LANGUAGE‘)

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

SIMPLIFIED CHINESE_CHINA.UTF8

4、Oracle字符集相关查询

4.1、查询Oracle支持的语言

[email protected]>select value from v$nls_valid_values whereparameter=‘LANGUAGE‘ ;

VALUE

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

AMERICAN

4.2、查询Oracle支持的地区

[email protected]>select value from v$nls_valid_values whereparameter=‘TERRITORY‘;

VALUE

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

AMERICA

4.3、查询Oracle支持的数据库字符集

[email protected]>select value from v$nls_valid_values whereparameter=‘CHARACTERSET‘;

4.4、数据库服务器字符集环境

select * from nls_database_parameters

4.5、客户端字符集环境

select * from nls_instance_parameters

4.6、会话字符集环境

select* from nls_session_parameters

时间: 2024-12-14 18:44:09

Oracle字符集(总结)的相关文章

转Oracle字符集问题总结

Oracle字符集问题总结 分类: Oracle2006-06-04 13:48 1298人阅读 评论(3) 收藏 举报 oracle数据库sqlcharacter存储insert 作者: vstonet 出处: 菊花论坛 经常看到一些朋友问ORACLE字符集方面的问题,我想以迭代的方式来介绍一下. 第一次迭代:掌握字符集方面的基本概念. 有些朋友可能会认为这是多此一举,但实际上正是由于对相关基本概念把握不清,才导致了诸多问题和疑问.首先是字符集的概念.我们知道,电子计算机最初是用来进行科学计算

Oracle字符集的查看查询和Oracle字符集的设置修改

本文主要讨论以下几个部分:如何查看查询oracle字符集. 修改设置字符集以及常见的oracle utf8字符集和oracle exp 字符集问题. 一.什么是Oracle字符集 Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系.ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据.它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台. 影响Oracle数据库字符集最重要的参数是NLS_LANG参数.

oracle 字符集

---- 在国内外大中型数据库管理系统中,把ORACLE作为数据库管理平台的用户比较多.ORACLE 不论是数据库管理能力还是安全性都是无可非议的,但是,它在汉字信息的显示方面着实给中国用户带来不少麻烦,笔者多年从事ORACLE数据库管理,经常收到周围用户和外地用户反映有关ORACLE数据库汉字显示问题的求援信,主要现象是把汉字显示为不可识别的乱码,造成原来大量信息无法使用.本文将就这一问题产生的原因和解决办法进行一些探讨,供存在这方面问题的用户朋友参考. ---- 1.原因分析  ---- 通

oracle 字符集导入、导出 、转换

导入导出及转换 导入导出是我们常用的一个数据迁移及转化工具,因其导出文件具有平台无关性,所以在跨平台迁移中,最为常用. 在导出操作时,非常重要的是客户端的字符集设置,也就是客户端的NLS_LANG设置. NLS_LANG参数由以下部分组成: NLS_LANG=_. NLS_LANG各部分含义如下: LANGUAGE指定: -Oracle消息使用的语言 -日期中月份和日显示 TERRITORY指定 -货币和数字格式 -地区和计算星期及日期的习惯 CHARACTERSET: -控制客户端应用程序使用

更改Oracle字符集避免乱码

如何更改Oracle字符集避免乱码 转一位大神的笔记. 国内最常用的Oracle字符集ZHS16GBK(GBK 16-bit Simplified Chinese)能够支持繁体中文,并且按照2个字符长度存储一个汉字.UTF8字符集是多字节存储,1个汉字(简体.繁体)有时采用3个字符长度存储. Oracle支持字符集的更改,但是UTF8是Oracle中最大的字符集,也就是说UTF8是ZHS16GBK的严格超集.对于子集到超集的转换,Oracle是允许的,但是对于超集到子集的转换是不允许的.一般对于

Oracle 字符集小结(遇到一例子:查询结果列标题为汉字,但是显示为‘?&#39;)

问题处理方式: 查询:select userenv('language') from dual; 对比电脑环境变量NLS_LANG的值与查询结果是否一致,如果不一致,修改电脑环境变量NLS_LANG 问题解决后通过查询资料对会话字符做了一些总结: 字符集分可为三类: 1.数据库服务器字符集: SELECT * FROM NLS_DATABASE_PARAMETERS NLS_DATABASE_PARAMETERS其来源于props$,是表示数据库的字符集. 2.客户端字符集环境 SELECT *

ORACLE学习之九 Oracle 字符集的查看和修改 (转帖)

一.什么是Oracle字符集 Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系.ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据.它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台. 影响Oracle数据库字符集最重要的参数是NLS_LANG参数. 它的格式如下: NLS_LANG = language_territory.charset 它有三个组成部分(语言.地域和字符集),每个成分控制了NL

修改Oracle字符集

新安装的数据库,导入数据之后,发现插入汉字部分是乱码.由于本地数据时正常显示的,没有乱码.因此断定是数据库字符集的问题. 1.  查看数据库的字符集: 发现是西欧编码.8位(一个字节).ISO标准8859P1编码.他的编码方案是适合欧洲大部分国家. 又查询了一下本地数据库的编码格式,发现是ZHS16GBk编码格式. 在这里解释一下字符集,Oracel最早支持的编码方案是US7ASCII. 再解释一下Oracle字符集的命名遵循以下命名规则: <Language><bit size>

oracle字符集查看、修改、版本查看

一.什么是Oracle字符集 Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系.ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据.它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台 影响Oracle数据库字符集最重要的参数是NLS_LANG参数. 它的格式如下: NLS_LANG = language_territory.charset 它有三个组成部分(语言.地域和字符集),每个成分控制了NLS