oracle的字符集(NLS_LANGUAGE)

摘要:
会话字符集环境select*fromnls_session_parameters,其来源于v$nls_parameters,SQL˃select*fromnls_session_parameters;PARAMETERVALUE-------------------------------------------------------------------------------------------NLS_LANGUAGESIMPLIFIEDCHINESENLS_TERRITORYCHINANLS_CURRENCY?表示会话自己的设置,可能是会话的环境变量或者是altersession完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。如果多个设置存在的时候,altersession˃环境变量˃注册表˃参数文件字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。

数据库服务器字符集select * from nls_database_parameters,其来源于props$,是表示数据库的字符集。

SQL> select * fromnls_database_parameters;

PARAMETER                      VALUE
------------------------------ -------------------------NLS_LANGUAGE                   AMERICAN
NLS_TERRITORY                  AMERICA
NLS_CURRENCY                   $
NLS_ISO_CURRENCY               AMERICA
NLS_NUMERIC_CHARACTERS         .,
NLS_CHARACTERSET               ZHS16GBK
NLS_CALENDAR                   GREGORIAN
NLS_DATE_FORMAT                DD-MON-RR
NLS_DATE_LANGUAGE              AMERICAN
NLS_SORT                       BINARY
NLS_TIME_FORMAT                HH.MI.SSXFF AM

PARAMETER                      VALUE
------------------------------ ------------------------------------NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY              $
NLS_COMP                       BINARY
NLS_LENGTH_SEMANTICS           BYTE
NLS_NCHAR_CONV_EXCP            FALSE
NLS_NCHAR_CHARACTERSET         UTF8
NLS_RDBMS_VERSION              11.2.0.1.0

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

1 SQL> select * fromnls_instance_parameters;
2 
3 PARAMETER                                                    VALUE
4 ------------------------------------------------------------ ----------------------------
5 NLS_LANGUAGE                                                 SIMPLIFIED CHINESE
6 NLS_TERRITORY                                                CHINA
7 NLS_SORT
8 NLS_DATE_LANGUAGE
9 NLS_DATE_FORMAT
10 NLS_CURRENCY
11 NLS_NUMERIC_CHARACTERS
12 NLS_ISO_CURRENCY
13 NLS_CALENDAR
14 NLS_TIME_FORMAT
15 NLS_TIMESTAMP_FORMAT
16 
17 PARAMETER                                                    VALUE
18 ------------------------------------------------------------ ----------------------------
19 NLS_TIME_TZ_FORMAT
20 NLS_TIMESTAMP_TZ_FORMAT
21 NLS_DUAL_CURRENCY
22 NLS_COMP                                                     BINARY
23 NLS_LENGTH_SEMANTICS                                         BYTE
24 NLS_NCHAR_CONV_EXCP                                          FALSE
25 
26 已选择17行。

会话字符集环境 select * from nls_session_parameters,其来源于v$nls_parameters,

SQL>  select * fromnls_session_parameters;

PARAMETER                                                    VALUE
------------------------------------------------------------ -------------------------------NLS_LANGUAGE                                                 SIMPLIFIED CHINESE
NLS_TERRITORY                                                CHINA
NLS_CURRENCY                                                 ?NLS_ISO_CURRENCY                                             CHINA
NLS_NUMERIC_CHARACTERS                                       .,
NLS_CALENDAR                                                 GREGORIAN
NLS_DATE_FORMAT                                              DD-MON-RR
NLS_DATE_LANGUAGE                                            SIMPLIFIED CHINESE
NLS_SORT                                                     BINARY
NLS_TIME_FORMAT                                              HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT                                         DD-MON-RR HH.MI.SSXFF AM

PARAMETER                                                    VALUE
------------------------------------------------------------ -------------------------------NLS_TIME_TZ_FORMAT                                           HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT                                      DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY                                            ?NLS_COMP                                                     BINARY
NLS_LENGTH_SEMANTICS                                         BYTE
NLS_NCHAR_CONV_EXCP                                          FALSE

已选择17行。

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


客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。如果多个设置存在的时候,alter session>环境变量>注册表>参数文件字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk。

注:

1.通过alter system set nls_language='AMERICAN' scope=spfile;可以更改nls_database_parameters和nls_instance_parameters的nls_language

2.通过alter session set nls_language='SIMPLIFIED CHINESE';可以更改nls_session_parameters的nls_language

免责声明:文章转载自《oracle的字符集(NLS_LANGUAGE)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【python】udp 数据的发送和接收python json.dumps() 中文乱码问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Sqlserver存储过程及其创建(转)

存储过程可以使得对数据库的管理、以及显示关于数据库及其用户信息的工作容易得多。存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。 存储过程可包含程序流、逻辑以及对数据库的查询。它们可以接受参数、输出参数、返回单...

Linux Oracle 11g dataguard物理standby的配置

这两天研究了下oracle 11g dataguard 物理standby 功能,总体来说这个功能满足公司需求,好了,不多说了,以下是详细的配置过程。 主库: IP:192.168.77.5 主机名:nod1 ORACLE_SID=test ORACLE_BASE=/oracle/app/oracle ORACLE_HOME=/oracle/app/or...

Oracle 数据库操作系统支持整理

一、概述 Oracle数据库支持多种操作系统,本文旨在依据官方文档整理出Oracle数据库常用版本关于操作系统认证信息,并给出建议,从而帮助用户对 Oracle 数据库进行操作系统选择。 二、常用数据库版本的操作系统认证信息 Oracle数据库各个版本的最新认证信息,可访问My Oracle Support(以前称为Oracle MetaLink)查阅,网...

转:如何用plsql从oracle中导入导出数据

如何使用PLSQL Developer从oracle数据库 导入导出数据   用pl/sql developer导出表的数据时有三种方式:Oracle Export,Sql Insert,pl/sql developer   只有“Oracle Export”方式导出再导入后,表结构和索引结构没有发生变化,另两种方式都改变了索引类型。另外   Sql In...

SQL优化(Oracle)

(转)SQL优化原则一、问题的提出  在应用系统开发初期。因为开发数据库数据比較少。对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,可是假设将应用系统提交实际应用后,随着数据库中数据的添加。系统的响应速度就成为眼下系统须要解决的最基本的问题之中的一个。系统优化中一个非常重要的方面就是SQL语句的优化。对于海量数据,劣质SQL...

Oracle里的整型与null问题

最近学习使用Oracle, 1,建表的时候发现int数据类型会报错,一查才发现,Oracle没有int型,只有integer而且integer不是标准的oracle数据类型,为了兼容才有的。 数据库中以number(38)的精度处理。smallint等也是一样。 Oracle原有存储数字的数据类型是numbernumber可以存储浮点数,也可以存储整数;n...