参考链接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 的设置的更多相关文章

  1. Oracle 客户端 NLS_LANG 的设置(转)

    1. NLS_LANG 参数组成NLS_LANG参数由以下部分组成:NLS_LANG=<Language>_<Territory>.<Clients Characters ...

  2. 转:Oracle客户端NLS_LANG参数的设置详解

    原文:http://database.51cto.com/art/201107/279361.htm 我们知道,Oracle客户端语言支持可以通过NLS_LANG参数的设置来完成,不同的系统平台上NL ...

  3. 如何设置Oracle客户端与服务器的字符集一致

    查看 Oracle 服务器字符集 select userenv('language') from dual; 设置Oracle客户端字符集 添加环境变量NLS_LANG 值与服务器的Oracle服务器 ...

  4. Oracle中文字符乱码?设置Oracle客户端字符编码与服务端一致

    经常可能出现查询Oracle数据时,中文显示乱码,这很可能是因为,Oracle服务端的字符编码与客户端不一致引起的. 这时,我们需要做的是,如何设置自己的客户端字符编码与服务端一致. 查询Oracle ...

  5. ORACLE.错误码 ORA-12154 及Oracle客户端免安装版的设置

    .错误码 ORA-12154相信作为ORACLE数据库的开发人员没有少碰到“ORA-12154: TNS: 无法解析指定的连接标识符”,今天我也又碰到了类似的情况,将我的解决方法进行小结,希望能对碰到 ...

  6. Linux 平台静默安装 Oracle客户端

    需求:Linux平台,安装完整版Oracle客户端 Tips:如果只是用到sqlldr,sqlplus功能,可以参考<Linux上oracle精简版客户端快速部署>快速部署精简版:如果需要 ...

  7. 关于IIS部署时出现“System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本”的问题解决摘要

    系统环境:windows2008 X64 IIS版本:iis7 oracle客户端版本:11g,另外装了32位的客户端. 网站.net framework版本: 4.0 目前状况,IIS可以正常运行, ...

  8. 在C#中,不安装Oracle客户端如何连接Oracle数据库

    本方法优点: 1.程序内集成Oracle客户端,无需用户自行进行配置 本方法缺点: 2.增加程序包的体积(Oracle instant client本身有几十兆大小) 下面说一下如何实现. 0.首先, ...

  9. 尝试加载 Oracle 客户端库时引发 BadImageFormatException。问题记录

    电脑是win8 64位,安装oracle 11g r2 64位的,谁知道一切装完毕后,打开项目却连不上oracle数据了...首先是pl/sql连不上,装了oracle服务器,应该是不用再装客户端,p ...

随机推荐

  1. redis(四)--简单实现Redis缓存中的排序功能

    在实现缓存排序功能之前,必须先明白这一功能的合理性.不妨思考一下,既然可以在数据库中排序,为什么还要把排序功能放在缓存中实现呢?这里简单总结了两个原因:首先,排序会增加数据库的负载,难以支撑高并发的应 ...

  2. ubuntu下apache新建虚拟主机

    最近发现在一个服务器上面布了一些项目,如果不用虚拟主机,用链接跳进去的话,有时候路径会出错,而自己在配置虚拟主机的时候又出现了一些问题,看似简单的东西,却花费了一上午,所以决定把简单的方法记下来,供和 ...

  3. js字符串转数字(小数),数字转字符串

    将字符串转化为小数并加法计算,然后保留两位小数 (parseFloat(that.data.pay_price) + parseFloat(that.data.qiandao)).toFixed(2) ...

  4. mysql拿webshell总结

    1.select '<?php eval($_POST[jumbo]) ?>' into outfile '/var/www/jumbo.php'; 2.select '<?php ...

  5. bug制造者又上线了

    上一家公司,领导经常这样表扬一位同事,“你写的bug远比你的功能值钱...” 今天特么的突然觉得我好像也有这样的功能,不知道是上次回家把脑子落家里了还是,前几天淋雨脑子进了水了. 呢么简单一个功能,愣 ...

  6. DWZ富客户端框架使用手册【申明:来源于网络】

    DWZ富客户端框架使用手册[申明:来源于网络] ---- 地址:http://www.docin.com/p-288065388.html&s=C1218A403B04136160905E8E ...

  7. web 容器

    jboss简单使用(AS7): 将项目打成war包,放到jboss-as-web-7.0.0.Final\standalone\deployments下 访问 alias .name+port+war ...

  8. PHP实现 手机号码归属地查询

    在工作中需要对手机号码进行归属地查询,就在网上找了下解决方案,发现通过号段非常好判断. 我将数据库文件放到了百度网盘,请有需要的朋友去下载. 链接: https://pan.baidu.com/s/1 ...

  9. intellij idea 的全局搜索快捷键方法

    1.Ctrl+N按名字搜索类 相当于eclipse的ctrl+shift+R,输入类名可以定位到这个类文件,就像idea在其它的搜索部分的表现一样,搜索类名也能对你所要搜索的内容多个部分进行匹配,而且 ...

  10. ionic3.x版本-实现点击tab导航栏判断是否已经登陆然后加载不同页面,和退出登录功能。

    html代码: <ion-tabs #myTabs> <ion-tab [root]="tab1Root" tabTitle="首页" tab ...