【oracle】字符集、国家字符集及NLS_LANG运行库

************************************************************************
  ****原文:blog.csdn.net/clark_xu 徐长亮的专栏
************************************************************************  

--unicode编码方案

--三个实施标准:utf-8,usc-2,utf-16

--oracle数据库字符集

--字符集character set

--国家字符集national character set

--字符集主要作用

--用于存储varchar2,char,clob,long类型数据

--标示表名,列名,以及pl/sql变量等;

--存储sql和plsql代码

--国家字符集用于存储nchar,nvarchar2,nclob等数据类型;

--一般为AL16UTF16

--简体中文平台的字符集一般为ZHS16GBK;

--常见中文编码

--ZHS16GBK231280 GBK2312-80 16bit,ASCII

--ZHS16GBK GBK 16bit,ASCII,UDC;

--GBK2312 1981年实施,

--GBK 1995年实施,支持全部中日韩汉子

--GBK和GBK2312的编码是不同的,同一个编码可能表达不同的汉字

--AL 开头,如AL16UTF16,AL表示试用所有原因;

--NLS运行库路径:ORACLE_HOME/nls/data

--定义语言NLS_LANGUAGE

--定义区域NLS_TERRITORY

--定义字符集NLS_CHARACTERSET

--中文的文件,lx00023.nlb,通过locale Builder打开

--字符和编码的转换

select dump(‘盖‘) from dual;

--------------

---typ=96 len=2:184.199

select concat(to_char(184,‘xx‘),to_char(199,‘xx‘)) from dual;

--b8 c7

select to_number(‘b8c7‘,‘xxxxxx‘) from dual;

--47303

select chr(47303) from dual;

--盖

--NLS_LANG的影响

--进行exp攻击进行导出的操作时候,非常重要的是客户端的字符集设置,NLS_LANG设置

--NLS_LANG=<language>_<Territory>.<client characterset>

--language指定了日期的显示方式,oracle消息使用的语言

--territory参数指定了货币和数字的格式

--characterset控制了字符集

--导入导出和字符转换

--源数据库和目标数据库的字符集不同

--导入的时候设置客户端NLS_LANG等于导出时候的字符集,转换发送在insert数据到其他字符集的目标数据中;

************************************************************************
  ****原文:blog.csdn.net/clark_xu 徐长亮的专栏
************************************************************************  



时间: 2024-08-23 04:37:37

【oracle】字符集、国家字符集及NLS_LANG运行库的相关文章

修改Oracle数据库的字符集为UTF-8

1.改客户端字符集:通过WINDOWS的运行菜单运行Regedit,修改注册表 Start -> Run -> Rededit <-| Under registry Editor - > HKEY_LOCAL_MACHINE -> SOFTWARE ->ORACLE->KEY_XE->RIGHT WINDOW DOUBLE CLICK NLS_LANG -> CHANGE VALUE TO "AMERICAN_AMERICA.UTF8&quo

tts和字符集的关系--要求源和目的端的数据库字符集必须一样,国家字符集必须一样。

imp sys/as TRANSPORT_TABLESPACE=Y datafiles= C:\oracle\product\10.2.0\oradata\a\test01.dbf' file=c:\tts_test.dmp log=c:\imp_tts.log IMP-00058: ORACLE error 1017 encountered ORA-01017: invalid username/password; logon deniedUsername: Connected to: Ora

[Oracle整理]ORA-12705(字符集问题)

[Oracle整理]ORA-12705(字符集问题) ? 2017年5月11日 18:11 [Oracle整理]ORA-12705(字符集问题) 说明:本内容是工作用到的知识点整理,来自工作中和网络.? 代码于Oracle9上测试. ? 环境不同 DB server相同 AP server相同 AP server上的DOTNET 版本相同--都是.NET 3.5SP1 建立相同的环境 客户端不相同,我的计算机上装的是10.2.0.AP server上装的是9.2.0 再次测试 出现ORA-127

Oracle 10g 修改字符集为UTF8

安装完ORACLE后发现字符集设置错误,因此需要修改字符集,修改方法如下: 系统环境:CentOS 6.5 ORACLE版本:10.2 1.登录到系统,切换到oracle用户权限 # su - oracle 2.接着输入: $ sqlplus / as sysdba 3.Oracle Server端字符集查询 SQL> select userenv('language') from dual; USERENV('LANGUAGE') -------------------------------

RACLE 错误 12899 处理, oracle 11g 更改字符集

工作需要,安装装了oracle 11g,在导入其他机器上的备份数据的时间,发生一个错误: IMP-00019: 由于 ORACLE 错误 12899 而拒绝行IMP-00003: 遇到 ORACLE 错误 12899ORA-12899: 列 "ZHENG"."D_DIC"."DICEXPLAIN" 的值太大 (实际值: 140, 最大值: 100) 这个数据表结构是直接注入的,根本不会这样子的啊.后来在网上查了才知道原来是字符集的问题: 在日志文

Oracle 字符集常见字符集及解决方案

Oracle 字符集常见字符集及解决方案 一.查看字符集: 1.查询服务端字符集: select userenv('language') from dual or select * from nls_database_parameters 2.查询客户端: select * from nls_instance_parameters 客户端字符集与服务端字符集不一致就会出现乱码等问题 3.会话字符集: select * from nls_session_parameters 二.修改字符集: 1.

webservice 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下运行,将出现此问题

最近做的项目中,应用服务器迁移到另外一台服务器,操作系统升级为win10,配置好IIS里的应用程序发布网站和Webservice网站后, 客户端程序调用Webservice出错: “尝试加载 Oracle 客户端库时引发 BadImageFormatException.如果在安装 32 位 Oracle 客户端组件的情况下运行,将出现此问题”. 写了个控制台程序,在本机上运行测试,还是出现这个问题: 最开始以为是oracle客户端的问题,重新安装另外一个版本的客户端,运行程序还是出现这个错误.

Linux修改oracle 10g的字符集

修改数据库字符集为:ZHS16GBK查看服务器端字符集SQL > select * from V$NLS_PARAMETERS修改:$sqlplus /nologSQL>conn / as sysdba~若此时数据库服务器已启动,则先执行 SHUTDOWN IMMEDIATE 命令关闭数据库服务器,然后执行以下命令:SQL>shutdown immediate~SQL>STARTUP MOUNT~SQL>ALTER SYSTEM ENABLE RESTRICTED SESSI

Oracle 11g 修改字符集 为 ZHS16GBK

方法一:sqlplus “用户/密码 as sysdba” sqlplus “sys/sys as sysdba”  方法二:sqlplus/nolog SQL> conn /as sysdba SQL> shutdown immediate; SQL> startup mount SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; SQL>