NLS(National Language Support,国家语言支持)是数据库的一个非常强大的特性,控制着数据的许多方面,最重要的两个方面包括:1、文本数据采用何种编码存储在磁盘上。2、透明地将数据从一个字符集转换到另一个字符集。Oracle字符集可以分为数据库字符集和客户端字符集。客户端字符集定义了客户端字符数据的编码方式,任何发自或发往客户端的字符数据均使用客户端定义的字符集编码,客户端可以看作是能与数据库直接连接的各种应用,例如SQL*Plus、exp/imp等。客户端字符集是通过设置NLS_LANG参数来设定的。
在部署重构版测试环境时,需要创建Oracle数据库,使用dbca创建数据库之后没有注意数据库本身的字符集,导致后续所有的数据库脚本执行后中文乱码。最后的解决办法是清掉全库数据,再修改字符集,重启数据库。
操作系统环境变量针对语言项设置有几个,我经常设置的是这两个LANG和NLS_LANG。
编辑手记:很多人在进行数据库导入导出操作的时候会遇到字符集的问题,今日拣选了 《循序渐进Oracle》一书中的相关章节,希望对初学Oracle的朋友有所帮助。 在传统的EXP导出文件中,记录着导出使用
1.数据库字符集:数据库需要存储多国语言选择AL32UTF8,只有中英文选择ZHS16GBK
创建备份数据的目录 mkdir -p /home/oracle/dbbak/data
在开发中常常碰到,需要导入dmp文件到现有数据库。这里的dmp文件可能来自于其它系统,所以,一般情况下是不知道导出程序(exp)的版本、导出时间或者导出模式等信息的。那么如何从现有的dmp文件中获取到这些信息呢?下面作者将一一讲解。
第一期就从基本的初始化参数讲起,一篇一个参数,会尽可能的具体. 如无特殊说明数据库版本为11.2.0.4
userenv函数返回当前会话(session)的相关信息。以下sql语句可以查询当前会话连接的数据库字符集
很多刚接触的朋友经常会搞混这两个字符集,数据库字符集是在创建数据库时进行指定的,不建议更改!而客户端字符集是可以随时更改的!
在使用exp/imp导出导入,经常会碰见各种的问题,前两天某公众号发了篇《IMP-00009:异常结束导出文件解决方案》,介绍了导入出现IMP-00009错误的解决方案,讲了各种场景,可以参考。
在工作中总是会碰到各种和date相关的问题,一般这种问题都是让人很纠结的。 比如前几天一个朋友和我分享了他关于时间问题的两个案例。 第一个是他在做impdp导入数据的时候,发现导入很顺利完成了,但是原本的timestamp数据类型的数据都变成了sysdate值了,这样数据就完全不对应了。timestamp的数据类型精度要高得多,可以精确到小数秒(默认是6位,算是微妙了,可以最高到9位),可能在有些系统中精确到秒已经足够了,但是据我所知,还没有这种数据类型的强制转换。我们聊了会,基本的共识就是数据库层面不会自
有时我们使用SecureCRT软件连接到我们的Oracle目标主机,会发现有些回显信息显示为乱码,非常不方便操作。 本文将介绍最常见的两种乱码情况解决方法。
在本地的虚拟机环境一直凑合着用英文,今天想看看中文的东西都显示乱码,下定决心要把问题解决了。 如果直接打印文本内容,通过putty也会显示乱码。 [ora11g@rac1 ~]$ cat aa.sh
之前装 win7 + oracle 11 R2 (64) + instantclient_11_2 (32) + PLSQL(32) 费了很大力气,见前一个帖子,后果就是plsql启动时读的环境变量位置是五花八门,可能是注册表中oraclehone下的,也可能是instantclient下的或者是电脑高级属性中环境变量,当然start.bat中的设置优先。
数据库的全球化特性是数据库发展的必然结果,位于不同地区、不同国家、不用语言而使用同一数据库越来越普遍。Oracle数据库提供
http://www.eygle.com/special/NLS_CHARACTER_SET_04.htm
今天在客户服务器上遇到了oracle中文乱码问题,第一个想到的是:要想避免oracle字符乱码的问题,需要注意oracle客户端的字符编码和服务端的字符编码保持一致。
Oracle数据库是广泛使用的关系型数据库管理系统,而SQLPlus是Oracle提供的一种交互式命令行工具,用于执行SQL语句。然而,当在SQLPlus中执行SQL语句时,如果SQL语句中包含中文字符,可能会出现乱码问题,甚至导致错误。本文将介绍如何解决在Oracle SQL*Plus中执行SQL语句时出现中文乱码和报错的问题。
大家好,又见面了,我是你们的朋友全栈君。SecureCRT 连接 Linux 时经常会看到乱码。 发生乱码的原因主要是有三个地方 1.Linux 的 etc 的系统默认配置的编码 2.用户环境变量里面设置的 LANG 变量 3.SecureCRT 会话变量里面的字符集的设置 只要保持这三个地方的字条集编码保持一致就可以了。 解决步骤如下: 1.设置用户的环境变量 查询当前用户的 Local 信息: # export |grep LANG declare -x LANG=”zh_CN.GB18030″ 设置用户的 Local 为 UTF-8 # env lang=zh_CN.utf8 HOSTNAME=devdbserver TERM=vt100 SHELL=/bin/bash HISTSIZE=1000 NLS_LANG=AMERICAN SSH_CLIENT=::ffff:192.168.14.12 51137 22 SSH_TTY=/dev/pts/2 JRE_HOME=/usr/java/jdk1.5.0/jre …….. lang=zh_CN.utf8 # 可以看到现在用户的环境变量将语言设置成为了 lang=zh_CN.utf8。 2.设置 SecureCRT。 设置步骤如下图所示: 需要说明的是: 设置字符编码跟用户变量一样后,可能还会出现中文乱码。 原因是字体引起的。 因为有些字体无法显示中文,所以中文就会出现乱码。 所以在选择字体时,应该选择那支持中文的字体
导读:本文来自『墨天轮』专栏“循序渐进Oralcle”(https://www.modb.pro/topic/6289,复制到浏览器中打开或者点击“阅读原文”),介绍《循序渐进Oracle》第三章的3.1-3.4节:字符集的基本知识、数据库的字符集、字符集文件及字符支持、NLS_LANG的设置与影响、导入导出及字符转换。
Linux平台 Oracle 11gR2 RAC安装指导: Part1:Linux平台 Oracle 11gR2 RAC安装Part1:准备工作 Part2:Linux平台 Oracle 11gR2 RAC安装Part2:GI安装 Part3:Linux平台 Oracle 11gR2 RAC安装Part3:DB安装
首先安装cx_Oracle,参考博主另一篇文章windows下Python连接Oracle
本文是《centos7下静默安装oracle11G图解配置》中第二篇。因linux下安装Oracle太过繁琐,如果写在一篇文章中,太长了。本文主要讲解安装前环境配置。
近期在项目中,要对1张100多万条记录的表进行查询,然后进行一些数据的统计,但是在这个过程中,发现只查询出来几条数据就出现了UnicodeDecodeError了。 在这里,我们使用sqlalchemy库进行查询,其内部还是Cx_Oracle来进行对应的操作,使用的Python版本为3.5.0,宿主系统为Windows 2008 Server,然后进行类似如下的操作: from sqlalchemy import create_engine engine = create_engine('oracl
Oracle创建数据库时指定字符集,一般不能修改,整个数据库都是一个字符集。虽然还支持指定国家字符集,用于nvarchar2类型,不过很少用到。常用的字符集:AL32UTF8和ZHS16GBK,其中AL32UTF8与UTF8几乎是等价的。一个汉字在AL32UTF8中占三个字节,而在ZHS16GBK中占用两个字节。
http://www.eygle.com/special/NLS_CHARACTER_SET_06.htm
**字符集** Oracle数据库软件有自己的字符集,不依赖于主机操作系统的字符集。 Oracle支持数百种字符集,我们在建立数据库时应该充分考虑实际业务需求,从而选择合适的字符集。 比如,我们确定数据库只是中国人来用,那么就可以选择ZHS16GBK字符集。
oracle 如果server与client端的编码不一致,asp.net读取db记录显示时,就可能出现乱码 查看oracle服务端编码:select * from sys.nls_database_parameters; 查看client编码:select * from sys.nls_session_parameters; 如果二端编码不一致,可以修改客户端的编码: regedit打开注册表: HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_OraDb10g_home1 修
作者 杨禹航 出品 沃趣技术 Oracle 12.1发布至今已有多年,但国内Oracle 12C的用户并不多,随着12.2在去年的发布,选择安装Oracle 12c的客户量明显增加,在接下来的几年中,Oracle 12c将逐步得到普及。 目前关于12C新特性的文章很多,但大多都不成体系,本次的文章是一个非常完整、连贯的系列,将带你全面的从基础到深入全方位的理解Oracle 12C。 本篇为Oracle 12c系列的开篇文章《Oracle 12c系列(1)Multitenant Container》。
数据库的全球化特性是数据库发展的必然结果,位于不同地区、不同国家、不用语言而使用同一数据库越来越普遍。对于不同国家或地区数据库通常会使用不同的字符集,而全球性企业也会选择使用统一编码的数据库字符集。Oracle数据库统一字符集为AL32UTF8,可以参考:Oracle 全球化特性与字符集。对于不同的字符集容易出现转换乱码,同时不同字符集也影响存储空间的占用。 如本文下面的描述。 一、字符集环境变量对数据库的影响 [oracle@java_1 ~]$ env |grep LANG LANG=zh_CN.
编辑手记:很多人在数据库各种操作中遭遇过乱码的问题,今天我们分析一下乱码产生的原因。本文节选于《循序渐进Oracle》 通常在现实环境中,存在3个字符集设置: 客户端应用字符集(Client ApplicationCharacter Set); 客户端NLS_LANG参数设置; 服务器端,数据库字符集(Character Set)设置。 由于一个字符在客户端应用(如SQLPLUS、CMD、NOTEPAD等)中以怎样的字符显示取决于客户端操作系统,客户端能够显示怎样的字符,我们就可以在应用中录入这些字符。至
Oracle 12.1发布至今已有多年,但国内Oracle 12C的用户并不多,随着12.2在去年的发布,选择安装Oracle 12c的客户量明显增加,在接下来的一两年中,Oracle 12c将逐步得到普及。
最近,好不容易用plsql developer连接上64位oracle了,不过有弹了一个错误:
linux64 位 oracle19c 安装包获取: 小蓝枣的资源仓库,提取码:qde5
3. 修改变量 现在需要将AMERICAN_AMERICA.ZHS16GBK 改为 SIMPLIFIED CHINESE_CHINA.ZH16GBK oracle用户编辑家目录的 .bash_profile 添加
中文乱码问题解决 查看服务器端编码 select userenv('language') from dual; 我实际查到的结果为:AMERICAN_AMERICA.ZHS16GBK 执行语句 select * from V$NLS_PARAMETERS 查看第一行中PARAMETER项中为NLS_LANGUAGE 对应的VALUE项中是否和第一步得到的值一样。如果不是,需要设置环境变量. 否则PLSQL客户端使用的编码和服务器端编码不一致,插入中文时就会出现乱码. 设置环境变量 计算机->属性->高
你在安卓6.0设备上跑了这个程序,并且编译版本大于23,而且这个原因是在6.0中没有给加上动态权限请求,你的应用在安装到手机的时候将不会获取任何权限!!!可以去查看应用的应用信息,其中的 Permissions 权限列表中所有的权限组都是关闭状态。
http://www.eygle.com/special/NLS_CHARACTER_SET_05.htm
本文下载的是以下两个包 oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
2、在PLSQL Developer工具所在的机器环境变量中添加用户变量(笔者的是win10)
instantclient-basic-nt-11.2.0.3.0.zip客户端压缩包为例
何剑敏 Oracle ACS华南区售后团队,首席技术工程师 曾供职于中国联通信息计费部、卓望数码,系统支撑部首席DBA,负责中国移动全网梦网业务和移动应用商城数据库维护。后供职于IBM,负责米其林项目和澳洲电信(Telstra)项目数据库管理。现供职于Oracle ACS华南区售后团队,首席技术工程师。多年从事第一线的数据库运维工作,有丰富项目经验、维护经验和调优经验,专注于数据库的整体运维。 编辑手记:字符集是数据库中很复杂的一个问题,通常设定后不做改变,但因生产的需要,也提供通过导入导出或命令修改的
阅读不方便,此时可以通过设置NLS_DATE_FORMAT来让日期显示更人性化,可以有如下几种方式:
在数据导出的时候,可能会碰到EXP-00091: Exporting questionable statistics.的问题,有时候会让人有点摸不到头脑,不知道该调整什么。 这个时候NLS_LANG就发挥作用了。 [ora11g@rac1 ~]$ exp n1/n1 tables=t file=t.dmp rows=n Export: Release 11.2.0.3.0 - Production on Fri May 23 19:26:35 2014 Copyright (c) 1982, 2011
设置为UTF8,需要新增变量NLS_LANG,赋值为:SIMPLIFIED CHINESE_CHINA.AL32UTF8
#************************************************************************* # Author : 清风 # CreateDate : 2015/6/12 15:30:13 # Description : this script is mointoring the linux disk capacity, if disk used more than 90%,then it
在系统环境变量中,新增变量 NLS_LANG,设置字符集为:AMERICAN_AMERICA.AL32UTF8(服务器端的字符集)。
领取专属 10元无门槛券
手把手带您无忧上云