oracle的userenv和nls_lang详解 1、userenv最常见的使用 userenv函数返回当前会话(session)的相关信息。...再看下windows上NLS_LANG环境变量 ? 最后看下plsql上userenv执行的结果 ?...可以发现在windows上使用plsql的时候语言和地区使用的是plsql的环境变量NLS_LANG。...3、Linux上sqlplus使用userenv 首先看一下NLS_LANG为空的情况下userenv的返回值 ?...NLS_LANG的每一个component都是可选的,如果只想指定NLS_LANG的territory,那么需要这样指定:NLS_LANG=_JAPAN。
最近,好不容易用plsql developer连接上64位oracle了,不过有弹了一个错误: NLS_LANG在客户端不能确定,字符集转变将造成不可预期的后果 ?...我系统注册表有NLS_LANG键值。 看来得添加环境变量了,如下图: ? 添加环境变量后,经过测试,加载成功。 此时,如果操作本地oracle数据库的话,提示肯定是中文的: ? ?...如果你通过本地plsql developer操作远程数据库,提示是英文的话,就得看看远程系统nls_lang变量是什么的了: ?...远程系统nls_lang变量是AMERICAN_AMERICA.ZHS16GBK,所以提示是英文的了: ? 加载成功的结果可以在plsql developer中看到: ?...v$nls_parameters就表示的是本地nls_lang设置了: ?
客户端字符集是通过设置NLS_LANG参数来设定的。 1、NLS_LANG参数组成 NLS_LANG参数由以下部分组成: NLS_LANG=_....C:\Users\lhr>echo %NLS_LANG% AMERICAN_CHINA.ZHS16GBK 当然,若Windows上安装了Cygwin软件的话,也可以像Linux那样查询: C:\Users...参数 在Windows上常用set命令,而在Linux系统上常用export命令来设置NLS_LANG参数。...NLS_LANG="AMERICAN_AMERICA.ZHS16GBK" NLS_LANG="AMERICAN_AMERICA.AL32UTF8" Linux上设置示例如下所示: [ZFLHRZHDB1...---------------- SIMPLIFIED CHINESE_CHINA.ZHS16GBK <=====可以看到数据库字符集是ZHS16GBK,而客户端字符集是AL32UTF8 在Linux
而设置数据库locale最简单的方法就是设置NLS_LANG这个环境参数。在linux中NLS_LANG是一个环境变量,在windows中NLS_LANG是写在注册表中的。...NLS_LANG这个参数由三个组成部分,分别是语言(language), 区域(territory)和字符集(character set),格式如下: NLS_LANG = language_territory.charset...我们平时最常见的就是:AMERICAN_AMERICA.ZHS16GBK和SIMPLIFIED CHINESE_CHINA.ZHS16GBK NLS_LANG的作用官网是这样说的: It sets the...也就是说如果客户端字符集和NLS_LANG中的charset不同,则会乱码。...set NLS_LANG linux查看nls_lang echo $NLS_LANG 5、修改Oracle Client字符集 修改客户端字符集只需要修改上述检查结果中的NLS_LANG即可。
linux环境下: [root@single ~]# locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" …… windows环境下: C:\Users\Martin...=american_america.zhs16gbk 语言和地区为中文中国的话,set NLS_LANG=simplified chinese_china.zhs16gbk linux:一般为utf-8...,即echo $LANG 结果为en_US.UTF-8 或zh_CN.UTF-8 export NLS_LANG=american_america.utf8 测试:客户端Linux,系统字符集为zh_CN.UTF...服务器操作系统字符集(暂时忽略) ps: 1.因为sql*plus 本身没有字符集,依赖于所在操作系统的字符集,而在远端linux上的oracle也是无法直接访问到windows上的字符集,所以依靠sql...*plus的NLS_LANG设置来辨别。
Windows: set NLS_LANG=american_america.AL32UTF8 set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK Linux:...export NLS_LANG=american_america.AL32UTF8 export NLS_LANG="SIMPLIFIED CHINESE_CHINA".ZHS16GBK 以上为常用客户端字符集
此参数指定数据库的默认语言 参数类型:字符串 语法: NLS_LANGUAGE = language 取值范围:所有有效的语言 默认值: NLS_LANG中得出 通过alter session修改,或者在参数文件中修改...此为基本参数 ---- 其他信息 在LInux系统中,我们一般指定NLS_LANG环境变量(区分大小写),如 NLS_LANG=american_america.al32utf8 其中american...即为默认的NLS_LANGUAGE的值,america为NLS_TERRITORY的值,al32utf8为字符集 注意:客户端NLS_LANG参数会在建立连接的时候覆盖NLS_LANGUAGE参数 NLS_LANG
断开、连接 disconn ; conn ww/ww; 关于字符集 操作系统环境变量针对语言项设置有几个,我经常设置的是这两个LANG和NLS_LANG。...LANG是针对Linux系统的语言、地区、字符集的设置,对linux下的应用程序有效,如date; NLS_LANG是针对Oracle语言、地区、字符集的设置,对oracle中的工具有效。...nls_database_parameters WHERE parameter IN ('NLS_LANGUAGE', 'NLS_TERRITORY', 'NLS_CHARACTERSET'); NLS_LANG...的格式如下: NLS_LANG = language_territory.charset Language:指定服务器消息的语言, 影响提示信息是中文还是英文 Territory:指定服务器的日期和数字格式
此参数指定数据库的默认区域 参数类型:字符串 语法:NLS_TERRITORY = territory 取值范围:所有有效的区域名称 默认值: NLS_LANG中得出 通过alter session修改...,或者在参数文件中修改 此为基本参数 ---- 其他信息 在LInux系统中,我们一般指定NLS_LANG环境变量(区分大小写),如 NLS_LANG=american_america.al32utf8...其中american为默认的NLS_LANGUAGE的值,america为NLS_TERRITORY的值,al32utf8为字符集 注意:客户端NLS_LANG参数会覆盖NLS_TERRITORY参数
各节点检查系统依赖包安装情况 2.4 各节点配置/etc/hosts 2.5 各节点创建需要的用户和组 2.6 各节点创建安装目录 2.7 各节点系统配置文件修改 2.8 各节点设置用户的环境变量 Linux...平台 Oracle 11gR2 RAC安装指导: Part1:Linux平台 Oracle 11gR2 RAC安装Part1:准备工作 Part2:Linux平台 Oracle 11gR2 RAC安装...Part2:GI安装 Part3:Linux平台 Oracle 11gR2 RAC安装Part3:DB安装 一、实施前期准备工作 1.1 服务器安装操作系统 配置完全相同的两台服务器,安装相同版本的Linux...lib:$GRID_HOME/lib32 export ORACLE_BASE=/opt/app/grid export ORA_NLS10=$ORACLE_HOME/nls/data export NLS_LANG...lib:$GRID_HOME/lib32 export ORACLE_BASE=/opt/app/grid export ORA_NLS10=$ORACLE_HOME/nls/data export NLS_LANG
3.1Oracle 通过环境变量NLS_LANG配置客户端字符集。...Linux下会话级设置方法:export NLS_LANG =AMERICAN_AMERICA.AL32UTF8 Windows下会话级设置方法:set NLS_LANG =AMERICAN_AMERICA.AL32UTF8...特别要注意一点,用SQLPLUS执行脚本时,NLS_LANG需要跟脚本文件的字符集保持一致。...在用SQLLDR导入数据时,可以在控制文件中指定数据文件的字符集,如果不指定,那么就需要配置NLS_LANG: load datacharacterset zhs16gbkinfile ‘data/Toneinfo.txt
1、查看数据库的字符集 数据库的字符集必须和Linux下设置的环境变量一致,不然会有乱码。...dbbak/log export DELTIME=`date -d "30 days ago" +%Y%m%d` export BAKUPTIME=`date +%Y%m%d%H%M%S` export NLS_LANG...export DELTIME=`date -d "30 days ago" +%Y%m%d` 配置保留数据的时间,这里是保留30天,根据自己需要和服务器的存储空间进行相应的修改即可; export NLS_LANG...|| table_name || ';' FROM USER_TABLES ORDER BY TABLE_NAME; 然后执行查询出来的结果 执行此行,避免表字段注释乱码 : export NLS_LANG...orcl20191121113703.dmp fromuser=DISPLAY touser=DISPLAY ignore=y; // ignore=y 忽略错误,继续执行 总结 以上所述是小编给大家介绍的Linux
清风 # CreateDate : 2015/6/12 15:30:13 # Description : this script is mointoring the linux...bin/bash #echo需要-e参数 alias echo='echo -e' SHELL=/bin/bash LC_ALL=zh_CN.GB18030 JAVA_JRE=/usr/jdk6/jre NLS_LANG...ORACLE_HOME=/export/home/tmn/oracle/product/11.2.0/dbhome export SHELL NLS_LANG LC_ALL JAVA_JRE LD_LIBRARY_PATH
Real Application Tes Export done in AL32UTF8 character set and AL16UTF16 NCHAR character set<<<--当前的NLS_LANG...<<----dmp文件的导出版本号 import done in ZHS16GBK character set and AL16UTF16 NCHAR character set<<<<<<--当前的NLS_LANG...如果没有显示“export client”行,那么说明当前dmp文件的字符集和当前的NLS_LANG环境变量的值相同。...无论是使用exp还是imp工具都会显示当前的NLS_LANG环境变量的值(表现为“Export done”、“import done”)。...需要注意的是,十六进制在Linux和Windows下顺序不同。
ORA-03113: end-of-file on communication channel 此时SQL*Plus可以执行,但是无法登录数据库,这是因为SQL*Plus执行时就需要调用字符集文件,在Linux...NLS_LANG参数由以下部分组成: NLS_LANG=_....如果导出时候使用的NLS_LANG是和源数据库相同的字符集,那么导入时就可以设置客户端NLS_LANG等于导出时使用的字符集,这样转换只发生在数据库端,而且只发生一次。...读取导出文件字符集ID,和导入进程的NLS_LANG进行比较。...来看一个测试,首先设置导入session NLS_LANG为US7ASCII: E:\nls2>set NLS_LANG=AMERICAN_AMERICA.US7ASCII 执行导入操作: E:\nls2
设置NLS_LANG环境变量 2. 修改SQL*Plus字符集设置 3....设置NLS_LANG环境变量 NLS_LANG是Oracle数据库的一个环境变量,它用于指定字符集和语言环境。正确设置NLS_LANG可以解决SQL*Plus中的中文乱码问题。...您可以按照以下步骤设置NLS_LANG环境变量: 打开命令行终端。...使用以下命令设置NLS_LANG环境变量(请根据您的字符集和语言环境进行相应更改): export NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK 在上述示例中,“...请检查NLS_LANG的设置,确保它的格式正确。
LANG NLS_LANG=SIMPLIFIED CHINESE_CHINA.AL32UTF8 LANG=zh_CN.UTF-8 SQL> select dump('云') from dual;...,字符集使用ZHS16GBK [oracle@java_1 ~]$ export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" [oracle@java_1...~]$ env |grep LANG NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK LANG=zh_CN.UTF-8 SQL> select dump('云')...设置 Commonly Used Values for NLS_LANG Table C-1 lists commonly used NLS_LANG values for various operating...system locales: Table C-1 NLS_LANG Parameter Values Operating System Locale NLS_LANG Value
在导出操作时,非常重要的是客户端的字符集设置,也就是客户端的NLS_LANG设置。 NLS_LANG参数由以下部分组成: NLS_LANG=_....SQL> 查看客户端NLS_LANG设置可以使用以下方法: Windows使用: echo %NLS_LANG% 如: E:/>echo %NLS_LANG% AMERICAN_AMERICA.ZHS16GBK...Unix使用: env|grep NLS_LANG 如: /opt/oracle>env|grep NLS_LANG NLS_LANG=AMERICAN_CHINA.ZHS16GBK Windows...导出使用的字符集将会记录在导出文件中,当文件导入时,将会检查导出时使用的字符集设置,如果这个字符集不同于导入客户端的NLS_LANG 设置,字符集将根据导入客户端NLS_LANG设置进行转换,如果必要,...2.源数据库和目标数据库字符集不同 如果我们导出时候使用的NLS_LANG是和源数据库相同的字符集,那么导入时就可以设置客户端NLS_LANG等于导出时使用的字符集,这 样转换只发生在数据库端,而且只发生一次
而另外在Linux下安装Oracle的客户端时,设置了1个NLS_LANG的环境变量,详情可以参考Ubuntu14.04安装Oracle Instant Client这篇文章,当然这篇文章有一些细节的东西没有介绍...一般情况下,我们在cmd中进行如下的设置: setenv NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK 我们指定Oracle消息使用的语言为简体中文,而客户端的字符集为...而正常的情况应该指定其编码为GBK: >>> a.decode('gbk') '中国' 而设定NLS_LANG就是相当于修改上述的编码为GBK。
在传输过程中,客户端NLS_LANG主要用于进行转换判断 如果NLS_LANG等于数据库字符集,则不进行任何转换直接把字符插入数据库 如果不同则进行转换,转换主要有两个任务 如果存在对应关系,则把相应二进制编码经过映射后...数据库字符集,在和客户端NLS_LANG不同时,会把经过NLS_LANG转换的字符进行进一步处理 对于?(即不存在对应关系的字符)直接以?...以下我们来看一下最为常见的字符集及乱码的产生: 1.当NLS_LANG字符集与数据库字符集不同,同时NLS_LANG不同于Server端字符集设置 在这种情况下,存在两种可能: 客户端输入的字符在NLS_LANG...转换时,A4对应了NLS_LANG中的‘¤’,这一步的转换产生了错误映射。...由于数据库字符集不 同于NLS_LANG设置,这时进一步的转换发生了,存入数据库的编码变成了C2A4,虽然同NLS_LANG进行了正确的转换,但是客户端录入的数据已经 损坏或者丢失了。
领取专属 10元无门槛券
手把手带您无忧上云