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 ...
随机推荐
- 4.express 框架
express express 官网:http://expressjs.com/ 中文:http://www.expressjs.com.cn/ 库:jquery 一堆 的属性和方法 框架:expre ...
- 不偏移的天地图地图服务-ArcGIS版
地图偏移和纠偏是使用在线电子地图不可避免的话题.研究不深入,暂且分享一种已纠偏的地图服务. 服务地址 直接放点干货: 影像地图: http://t0.tianditu.com/cia_w/esri/w ...
- 谷歌浏览器(Chrome)禁止浏览器缓存 设置
在开发项目期间用谷歌浏览器调试,他总是缓存我的css样式这个很气人啊,后经过摸索找到了方法,如下 先F12或者shift+ctrl+j 打开调试者工具,在找Network这个tab按钮,点击进入,勾选 ...
- ES6(六) --- Symbol
概述: ES5 中属性名都是字符串,这容易就造成命名的冲突,特别是在混入模式(mixin模式)下.为解决这个问题ES6 引入了Symbol, Symbol是一种新的基本数据类型,表示独一无二的值! ...
- pandas 2
============== sdf={'rkey':[1,2,3,2],'name':['rkey1','rkey2','rkey3','rkey4']}sdf2={'lkey':[1,2,3],' ...
- 1.认识Wireshark的主窗口界面(转)
原文地址:https://www.ichunqiu.com/vm/51411/1 (1)首先了解一下这款软件主窗口界面中每个部分的功能.Wireshark主窗口界面如下图所示: 上图中每部分的含义如下 ...
- 分析servlet injection
@WebServlet("/cdiservlet") ||url映射 public class NewServlet extends HttpServlet { private M ...
- LeetCode 520 Detect Capital 解题报告
题目要求 Given a word, you need to judge whether the usage of capitals in it is right or not. We define ...
- Elasticsearch学习笔记(六)核心概念和分片shard机制
一.核心概念 1.近实时(Near Realtime NRT) (1)从写入数据到数据可以被搜索到有一个小延迟(大概1秒): (2)基于es执行搜索和分析可以达到秒级 2.集群(Cluster) 一个 ...
- PTA地下迷宫探索
地道战是在抗日战争时期,在华北平原上抗日军民利用地道打击日本侵略者的作战方式.地道网是房连房.街连街.村连村的地下工事,如下图所示. 我们在回顾前辈们艰苦卓绝的战争生活的同时,真心钦佩他们的聪明才智. ...