Oracle 客户端 NLS_LANG 的设置
参考链接1: https://blog.csdn.net/xinzhan0/article/details/78311417#t3
参考链接2: https://blog.csdn.net/xinzhan0/article/details/78311562
1、操作系统本身有字符集 ---locale -a 或者chcp
2、oracle数据库软件有字符集
3、oracle软件的操作系统本身也有字符集
AL32UTF8
【AL】支持所有语言(All Language)
【32】每字符最多占用32位(4字节)
【UTF8】编码为UTF-8
WE8MSWIN1252
【WE】支持西欧语言(Western Europe)
【8】每字符需要占用8位(单字节)
【MSWIN1252】编码为CP1252
US7ASCII
【US】表示美国(United States)
【7】每字符需要占用7位
【ASCII】编码为ASCII
字符集说白了是一个集合 ,是一张表,这个表有两列,左面这列是字符是所有要存储的字符。
字符有很多字符 ,比如我们讲中文字符:
左面这列就是中国人常用的所有的中文字符 ,有汉字、英文字母有数字还有一些特殊的符号 ,在左面都出现是我们中文要使用的所有的字符
右边是一个编码,从1号2、3、4、5、6 ,将来提到1的时候就对应着一个字符
所以说字符集就是字符和编码的这么一个对应表
常用字符集:
US7ASCII
ZHS16CGB231280
AL32UTF8
AF16UTF16
ZHS16GBK
数据库字符集
SQL> select * from nls_database_parameters;
PARAMETER VALUE
------------------------------------------------------------ --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET AL32UTF8 -------------数据库字符集
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
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 AL16UTF16 ---------------------国家字符集(用的少)
NLS_RDBMS_VERSION 11.2.0.1.0
客户端字符集
SQL> select * from nls_instance_parameters;
PARAMETER VALUE
------------------------------------------------------------------------------------------------------------------------ ----------------------------------------------------------------------------------------------------------------------------------------------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_SORT
NLS_DATE_LANGUAGE
NLS_DATE_FORMAT
NLS_CURRENCY
NLS_NUMERIC_CHARACTERS
NLS_ISO_CURRENCY
NLS_CALENDAR
NLS_TIME_FORMAT
NLS_TIMESTAMP_FORMAT
NLS_TIME_TZ_FORMAT
NLS_TIMESTAMP_TZ_FORMAT
NLS_DUAL_CURRENCY
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
会话字符集
SQL> select * from nls_session_parameters;
PARAMETER VALUE
------------------------------------------------------------------------------------------------------------------------ ----------------------------------------------------------------------------------------------------------------------------------------------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
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_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8" ----------.bash_profile里面的参数只是在修改会话的字符集,也可以直接export指定
NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8" -------对应的分别是语言、地区、字符集。
字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk
NLS作用优先级别:Sql function > alter session> 环境变量或注册表> 参数文件> 数据库默认参数
环境模拟
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8" 登入界面显示英文,在linux sqlplus表中插入注释,查看注释正常显示为中文,sqlplus develop中也正常显示,但是sqlplus develop不能改注释,只能在linux中改
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8" 登入界面显示中文,在linux中插入注释,查看住注释正常显示为中文,sqlplus develop中也正常显示,但是sqlplus develop不能改注释,只能在linux中改
若想要在sqlplus developer中支持中文的查看和修改(例如修改表的注释),则在环境变量中加NLS_LANG=AMERICAN_AMERICA.AL32UTF8 --注意:这里只要字符集为AL32UTF8就可以,前面的语言可以任意
Windows echo %NLS_LANG%
Linux env | grep NLS_LANG
例如:数据库为GBK
oracle@pdcsh021v03:~> echo $LANG
zh_CN.UTF-8
oracle@pdcsh021v03:~> echo $NLS_LANG
SIMPLIFIED CHINESE_CHINA.AL32UTF8
一、修改会话的字符集与数据库的字符集一致
数据库查询结果

创建环境变量(只需要字符集一致),创建结果与nls_session_parameters的值对应,PL/SQL显示结果为中文


注:客户端的字符集是在没有设置NLS_LANG环境变量时,会话默认的字符集
Oracle 客户端 NLS_LANG 的设置的更多相关文章
- Oracle 客户端 NLS_LANG 的设置(转)
1. NLS_LANG 参数组成NLS_LANG参数由以下部分组成:NLS_LANG=<Language>_<Territory>.<Clients Characters ...
- 转:Oracle客户端NLS_LANG参数的设置详解
原文:http://database.51cto.com/art/201107/279361.htm 我们知道,Oracle客户端语言支持可以通过NLS_LANG参数的设置来完成,不同的系统平台上NL ...
- 如何设置Oracle客户端与服务器的字符集一致
查看 Oracle 服务器字符集 select userenv('language') from dual; 设置Oracle客户端字符集 添加环境变量NLS_LANG 值与服务器的Oracle服务器 ...
- Oracle中文字符乱码?设置Oracle客户端字符编码与服务端一致
经常可能出现查询Oracle数据时,中文显示乱码,这很可能是因为,Oracle服务端的字符编码与客户端不一致引起的. 这时,我们需要做的是,如何设置自己的客户端字符编码与服务端一致. 查询Oracle ...
- ORACLE.错误码 ORA-12154 及Oracle客户端免安装版的设置
.错误码 ORA-12154相信作为ORACLE数据库的开发人员没有少碰到“ORA-12154: TNS: 无法解析指定的连接标识符”,今天我也又碰到了类似的情况,将我的解决方法进行小结,希望能对碰到 ...
- Linux 平台静默安装 Oracle客户端
需求:Linux平台,安装完整版Oracle客户端 Tips:如果只是用到sqlldr,sqlplus功能,可以参考<Linux上oracle精简版客户端快速部署>快速部署精简版:如果需要 ...
- 关于IIS部署时出现“System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本”的问题解决摘要
系统环境:windows2008 X64 IIS版本:iis7 oracle客户端版本:11g,另外装了32位的客户端. 网站.net framework版本: 4.0 目前状况,IIS可以正常运行, ...
- 在C#中,不安装Oracle客户端如何连接Oracle数据库
本方法优点: 1.程序内集成Oracle客户端,无需用户自行进行配置 本方法缺点: 2.增加程序包的体积(Oracle instant client本身有几十兆大小) 下面说一下如何实现. 0.首先, ...
- 尝试加载 Oracle 客户端库时引发 BadImageFormatException。问题记录
电脑是win8 64位,安装oracle 11g r2 64位的,谁知道一切装完毕后,打开项目却连不上oracle数据了...首先是pl/sql连不上,装了oracle服务器,应该是不用再装客户端,p ...
随机推荐
- 非常实用的使用eclipse的快捷键和技巧
解决代码的自动提示问题: 1.打开 Eclipse -> Window -> Perferences 2.找到Java 下的 Editor 下的 Content Assist , 右边出现 ...
- ZOJ 4067 - Books - [贪心][2018 ACM-ICPC Asia Qingdao Regional Problem J]
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4067 题意: 给出 $n$ 本书(编号 $1 \sim n$), ...
- CH 3101 - 阶乘分解 - [埃筛]
题目链接:传送门 题解: $(1e6)!$ 这种数字,表示都表示不出来,想直接 $O(\sqrt{N})$ 分解质因数这种事情就不要想了. 考虑 $N!$ 的特殊性,这个数字的所有可能包含的质因子,就 ...
- Codeforces Round div2 #541 题解
codeforces Round #541 abstract: I构造题可能代码简单证明很难 II拓扑排序 III并查集 启发式排序,带链表 IV dp 处理字符串递推问题 V 数据结构巧用:于二叉树 ...
- javascript 回调 继承
var my = function (name,fn){ alert(name); ...
- 架构3(基于LVS LB集群解决方案一:piranha)
1.实现调度器的HA 2.对realserver做健康检测 3.动态维护IPVS路由表 pulse 活跃和备用lvs路由器中都会运行pulse守护进程,在备用路由器中,pulse向活跃的服务器的公共接 ...
- 前端paging分页,前端设置每页多少条和当前页面的索引,传给后端,数据显示出来
1.首先引入jquery 2.在引入paging.css和paging.js 这2个我存在百度云上: 链接:https://pan.baidu.com/s/1SPxlBkkx-pNAtLuRLifE ...
- linux 逆向映射机制浅析
2017-05-20 聚会回来一如既往的看了会羽毛球比赛,然后想到前几天和朋友讨论的逆向映射的问题,还是简要总结下,免得以后再忘记了!可是当我添加时间……这就有点尴尬了……520还在写技术博客…… 闲 ...
- WCF中的ServiceHost初始化两种方式
1 代码方式 using(ServiceHost host=new ServiceHost(typeof(HelloWordService))) { host.AddServiceEndpoint(t ...
- Vue.js使用Leaflet地图
参考:https://blog.csdn.net/Joshua_HIT/article/details/72860171 vue2leaflet的demo:https://github.com/KoR ...