nls参数、环境变量以及函数等起作用的顺序!

Oracle NLS参数深度解析:从字符集到排序规则,彻底解决乱码与全球化数据难题 在数据库管理与应用开发中,字符编码与国际化支持是确保数据准确存储、处理和显示的核心基础。其原理在于通过一套环境变量体系,定义数据库的字符集、排序规则、日期格式等本地化属性,从而实现对多语言数据的无缝处理。这项技术的价值在于保障全球化应用中的数据一致性,避免因环境不匹配导致的乱码、排序错误或格式解析异常。典型应用场景包括跨国系统集成、多语言数据迁移、以及需要支持特殊字符(如Emoji)的现代Web应用。本文聚焦Oracle NLS参数体系,深入剖析其四大层级优先级、核心参数(如NLS_CHARACTERSET 阅读详情

nls参数、环境变量以及函数起作用的顺序是:

instance级参数--->nls_lang--->session级参数--->函数。

[@more@]

C:>set nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

C:>sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 7月 29 21:01:38 2009

Copyright (c) 1982, 2005, Oracle. All rights reserved.


连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> show parameter nls_date_format

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
nls_date_format string yyyy/mm/dd hh24:mi:ss
--很明显实例级别参数nls_date_format没有启作用
SQL> select sysdate from dual;

SYSDATE
--------------
29-7月 -09
--==============================
--在注册表中清除nls_lang的值,这是我们发现实例级参数nls_date_format:格式
yyyy/mm/dd hh24:mi:ss开始发挥作用
SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开

C:>sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Wed Jul 29 20:54:59 2009

Copyright (c) 1982, 2005, Oracle. All rights reserved.


???:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> select sysdate from dual;

SYSDATE
-------------------
2009/07/29 20:55:01
--====================================
--恢复注册表中的nls_lang设置:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
SQL> exit
? Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options ??

C:>sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 7月 29 20:55:21 2009

Copyright (c) 1982, 2005, Oracle. All rights reserved.


连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> select sysdate from dual;

SYSDATE
--------------
29-7月 -09

SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

会话已更改。
--显然session级别的nls_date_format发挥了作用
SQL> select sysdate from dual;

SYSDATE
-------------------
2009-07-29 20:55:55
--很显然函数发挥了作用
SQL> select to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from dual;

TO_CHAR(SYSDATE,'YY
-------------------
2009-07-29 09:10:01

SQL>

19、日期时间管理与NLS参数详解 本文详细探讨了日期时间管理的基础知识和NLS参数的应用,包括DATE值的处理、PERSONAL_ID的特性以及生成随机日期的方法。重点解析了影响日期和时间处理的关键NLS参数,如NLS_DATE_FORMAT、NLS_DATE_LANGUAGE、NLS_CALENDAR和NLS_TERRITORY,并通过实例展示了如何在SQL语句中灵活使用这些参数。文章还提供了实际应用场景和多语言日期显示、不同日历系统的日期计算等解决方案,旨在帮助开发者构建支持全球化需求的应用程序。 阅读详情

相关推荐

NLS_LANG修改环境变量工具

window下修改NLS_LANG环境变量快捷工具,此工具利用bat写的,可以看见源码,提供给大家参考

oracle环境变量NLS值,设置NLS_LANG环境变量

设置NLS_LANG环境变量2013-07-18Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。1、格式: NLS_LANG=language_territory.charset(语言_地域.字符...

weixin_32493245的博客 4941

利用R语言中的nls进行参数估计

如何进行参数估计:从实际例子出发,利用R中的nls()函数,进行非线性模型中的参数估计。以及一些画图技巧。

Oracle入门精读29-Oracle客户端字符集与NLS_LANG环境变量

NLS_LANG环境变量说明 格式如下 NLS_LANG = LANGEAGE_TERRITORY.CHARSET 1)LANGUAGE:客户端系统所使用的语言。    操作系统使用简体中文,则为SIMPLIFIED CHINESE;若操作系统使用英文,则为AMERICAN。    主要涉及到字符数据的排列顺序及年月日名称表示。 2)TERRIYTOR:客户端系统所在的地区    默...

木生火 2040

ORACLE 客户端NLS环境变量

SQL> select * from V$NLS_PARAMETERS;   NLS_LANGUAGE                     SIMPLIFIED CHINESE   NLS_TERRITORY                          CHINA   NLS_CURRENCY                           RMB   NLS_ISO_CUR

425

linux rman 变量,RMAN环境变量的设置

RMAN和SQLPLUS一样,都可以获取在操作系统上定义的环境变量。对RMAN而言,最常用的环境变量莫过于ORACLE_SID和ORACLE_HOME了。除了这两个变量,还经常需要设置NLS_LANG和NLS_DATE_FORMAT变量。NLS_LANG用语设置语言和字符集信息。NLS_DATE_FORMAT则设置RMAN输入、输出日期类型的变量时,使用的默认格式。比如,查询一个备份的开始时间:R...

weixin_39924307的博客 382

客服端 NLS_LANG 环境变量NLS_DATE_FORMAT 参数设置的影响

客服端 NLS_LANG 环境变量NLS_DATE_FORMAT 参数设置的影响 一. NLS_LANG , 这个参数作为环境变量配置于 .bash_profile ( LINUX) 中(在windows 中,配置于注册...

csdn909034的博客 531

oracle 关于nls_language,NLS_CHARACTERSET,数据库的字符级别

查看数据库的字符级 select userenv('language') from dual; JAPANESE_JAPAN.JA16SJISTILDE 或者是 AMERICAN_AMERICA.JA16SJISTILDE 其中三部分分别是 NLS_LANGUAGE:JAPANESE NLS_TERRITORY:JAPAN NLS_CHARACTERSET:JA16

indieinside的专栏 7372

Oracle函数大全八:NLS_LOWER函数

此外,NLS_LOWER函数还可以与NLS_SORT参数一起使用,以考虑特定语言环境的字符排序和大小写规则。这在处理具有特殊大小写规则的语言(如土耳其语,其中'I'的小写是'ı'而不是'i')时特别有用。但是,大多数情况下,如果不指定NLS_SORT参数NLS_LOWER函数将按照数据库的默认字符集和排序规则进行操作。请注意,NLS_LOWER函数不直接处理多字节字符集(如UTF-8中的某些字符)的特殊大小写转换规则。NLS_LOWER函数返回一个字符串,该字符串是输入字符串的小写形式。

yixiaobing的博客 598

ORACLE之NLS的那些事

not a valid month 无效的月份

yu102655的专栏 2826

nls_date_format参数设置的问题

今天在练习TO_DATE()和TO_CHAR()函数的时候发现了一个问题,就是说nls_date_format参数在会话级alter session修改起作用,可在系统级alter system却不起作用.具体情况如下:SQL> select sysdate from dual;SYSDATE---------------19-OCT-09SQL> alter sessio

朝着梦想 渐行前进 4815

时间格式nls_date_format的设置

nls_date_format参数用于设置日期显示格式,设置的方式有多种,不同的方式也会带来不同的结果。参数的设置是有优先级的,日期格式的参数设置也不例外。优先级如下(低到高):初始化参数 < 系统环境变量 < 会话级(session)< 函数下面来演示参数设置的优先级1.用初始化参数来设置nls_date_format检查是否设置了nls_date_format环境变量,从下面...

weixin_30710457的博客 592

windows环境中的客户端如何调整NLS_LANGUAGE和NLS_TERRITORY

在Windows环境中,可以通过以下方式调整客户端的。

qq_27361945的博客 2656

【字符集】“客户终端字符集”、“NLS_LANG”环境变量以及“数据库字符集”...

自从选用了AL32UTF8字符集做为生产数据库字符集之后,就一直奔走于“乱码”与“转码”之间。在与“乱码”PK良久之后,有了这个小文儿。如果想要搞清楚Oracle的字符系统,需要紧紧地抓住...

cuanchuwei1207的博客 424

环境变量配置

选择Oracle client 安装的主目录 InstantClient所在目录。(Oracle client 的bin目录)java -验证java安装是否成功。(tnsnames.ora文件所在目录)ORACLE_HOME环境变量配置。有些是tool(工具) -首选项。TNS_ADMIN 环境变量配置。下载instantclient。NLS_LANG 环境变量配置。JAVA jdk环境变量。JAVA_HOME变量。ClassPath变量。java运行环境的验证。

weixin_42631615的博客 1641

PLSQL NLS_LANG 环境变量获取方法-解决中文乱码

【代码】PLSQL NLS_LANG 环境变量获取方法-解决中文乱码。

liuqw231的专栏 1039

NLS相关参数

三个层次: 1.数据库服务器字符集环境:select * from nls_database_parameters;查询数据库的字符集设置; 2.客户端字符集环境:select * from nls_instance_parameters;查询客户端字符集设置; 3.当前会话字符集环境:select * from nls_session_parameters;查询当前会话字符集设置; ...

weixin_43736024的博客 896
上一篇: Oracle 全球化特性与字符集
下一篇: 三十功名尘与土——资深程序员生涯自白
梁南
博客等级 码龄16年 8粉丝 2原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值