[转帖]Oracle中为什么需要NCHAR
https://zhuanlan.zhihu.com/p/668402759
Oracle中已经有了char、varchar2等字符类型,为什么又弄出一个nchar、nvarchar2?
Oracle数据库中有两个字符集编码,创建数据库时可以显示指定
- 数据库字符集编码
- 国家字符集编码
--查看当前数据库字符集和国家字符集
select * from nls_database_parameters where parameter='NLS_CHARACTERSET' OR parameter='NLS_NCHAR_CHARACTERSET';
PARAMETER VALUE
NLS_NCHAR_CHARACTERSET AL16UTF16 --国家字符编码为AL16UTF16
NLS_CHARACTERSET AL32UTF8 --数据库字符编码为AL32UTF8
char、varcahr2、clob这几个类型字段存储的字符串编码类型为当前数据库字符编码,由于Oracle支持很多不同国家不同语言的字符编码,除unicode支持的几种字符编码(AL32UTF8/AL16UTF16等)外,大部分字符编码并不能表示世界上所有的字符。这就会出现一个问题,在一个数据库编码为非unicode的数据库中,如果想存储当前数据库编码不支持的字符,那是没法做到的。基于此情况出现了下面的nchar。
nchar、nvarchar2、nclob这几个类型字段存储的字符串的字符编码为国家字符集编码,且只能为unicode的AL16UTF16(默认及推荐)或者UTF-8(已弃用),由于unicode编码包含了世界所有字符,这就解决了在一个数据库编码为非unicode的数据库中,如果想存储当前数据库编码不支持的字符;
此外,由于数据库字符编码(默认AL32UTF8)和国家字符编码(AL16UTF16)不同导致的存储空间占用不同的问题,也是引入国家字符集编码的原因,AL32UTF8字符宽度为1~4字节,其中欧洲字符和中东等字符占1~2个字节,亚洲字符大部分占用3个字节,补充字符占用4个字节。而AL16UTF16字符宽度为2或4字节,其中欧洲字符、中东字符、亚洲等字符大部分都占用2个字节,补充字符占用4个字节,所以具体业务中字符类型来确定使用那种类型。
[转帖]Oracle中为什么需要NCHAR的更多相关文章
- [转帖]【Oracle】详解Oracle中NLS_LANG变量的使用
[Oracle]详解Oracle中NLS_LANG变量的使用 https://www.cnblogs.com/HDK2016/p/6880560.html NLS_LANG=LANGUAGE_TERR ...
- Oracle中varchar,varchar2,nvarchar,nvarchar2的区别及其它数据类型描述
--varchar,varchar2 联系: 1.varchar/varchar2用于存储可变长度的字符串 比如varchar(20),存入字符串'abc',则数据库中该字段只占3个字节,而不是20个 ...
- 在Oracle中使用Entity Framework 6 CodeFirst
项目中需要将系统从SQLServer数据库迁移到Oracle上.由于原大部分数据访问操作都是通过包装了Entity Framework的统一访问入口实现的,所以需要研究Entity Framework ...
- oracle中imp命令详解 .
转自http://www.cnblogs.com/songdavid/articles/2435439.html oracle中imp命令详解 Oracle的导入实用程序(Import utility ...
- Oracle中的数据类型和数据类型之间的转换
Oracle中的数据类型 /* ORACLE 中的数据类型: char 长度固定 范围:1-2000 VARCHAR2 长度可变 范围:1-4000 LONG 长度可变 最大的范围2gb 长字符类型 ...
- 将SQLServer2005中的数据同步到Oracle中
有时由于项目开发的需要,必须将SQLServer2005中的某些表同步到Oracle数据库中,由其他其他系统来读取这些数据.不同数据库类型之间的数据同步我们可以使用链接服务器和SQLAgent来实现. ...
- sqlserver和oracle中对全半角的转换
oracle中对全半角的转换 to_single_byte(c)转换成半角 to_multi_byte(c)转换成全角 SELECT To_single_byte('881898?71') FROM ...
- oracle中imp命令具体解释
oracle中imp命令具体解释 Oracle的导入有用程序(Import utility)同意从数据库提取数据,而且将数据写入操作系统文件.imp使用的基本格式:imp[username[/pass ...
- Oracle中对列加密的方法
Oracle中对列加密的方法 2011-12-22 17:21:13 分类: Linux Oracle支持多种列加密方式: 1,透明数据加密(TDE):create table encrypt_col ...
- Oracle中如何导出存储过程、函数、包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句?
Oracle中如何导出存储过程.函数.包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句? QQ群里有人问:如何导出一个用户下的存储过程? 麦苗答:方法有多种,可以使用DBMS_MET ...
随机推荐
- 字正腔圆,万国同音,coqui-ai TTS跨语种语音克隆,钢铁侠讲16国语言(Python3.10)
按照固有的思维方式,如果想要语音克隆首先得有克隆对象具体的语言语音样本,换句话说,克隆对象必须说过某一种语言的话才行,但现在,coqui-ai TTS V2.0版本做到了,真正的跨语种无需训练的语音克 ...
- JavaFx之使用高版本JDK(二十八)
JavaFx之使用高版本JDK(二十八) 如何使用高版本的jfx? 根据官网的需要手动引入jfx模块(运行参数:–module-path) 要知道高版本jfx已经集成了丰富的主流功能,例如视频编码,大 ...
- Spire.Cloud 在线协同编辑Word文档
协同编辑,即项目管理者在用户管理系统下,允许多人(用户)同时编辑同一Word/Excel/PPT 文档.Spire.Cloud支持的协同编辑模式包含两种: 1. 快速模式:其他编辑者可以及时看到对文档 ...
- 3种方法,用Java找出两个List中的重复元素
本文分享自华为云社区<如何用Java找出两个List中的重复元素,读这一篇就够了>,作者: 努力的阿飞. 在Java编程中,我们经常需要找出两个列表(List)中的重复元素.在本文中,我们 ...
- 手把手教您在PyCharm中连接云端资源进行代码调试
摘要:ModelArts提供了一个PyCharm插件工具PyCharm ToolKit,协助用户完成代码上传.提交训练作业.将训练日志获取到本地展示等,用户只需要专注于本地的代码开发即可. 本文分享自 ...
- 华为云原生数据仓库GaussDB(DWS)深度技术解读:融、快、大、稳、易
摘要:云原生数据仓库GaussDB(DWS)架构师应邀为大家解读数仓深度技术. "云原生"在2020年成为备受瞩目的热词,云原生在确保企业数字化转型中资源快速供给.按需使用的同时, ...
- 梳理数仓FI manager节点健康检查逻辑
摘要:一篇记录FI Manager节点健康检查机制的博文. 本文分享自华为云社区<GaussDB(DWS) FI manager节点健康检查逻辑梳理>,作者:配音师 . 一.相关背景 1. ...
- 鲲鹏BoostKit虚拟化使能套件,让数据加密更安全
摘要:借助华为鲲鹏BoostKit虚拟化使能套件(简称鲲鹏BoostKit虚拟化),可加速迈向云计算之旅.本次KAE加速引擎让数据加密更安全直播将介绍鲲鹏BoostKit加速库全景,基于BoostKi ...
- 快来一起玩转LiteOS组件:Curl
摘要:Curl是一个文件传输工具,常用于数据上传和下载,本demo基于Cloud_STM32F429IGTx_FIRE开发板演示了在curl demo中调用curl提供的API来下载一个文件,并将其保 ...
- Solon 问答: 怎么切换环境配置?
#应用配置文件活动选择(可用于切换不同的环境配置) solon.env: dev #例: # app.yml #应用主配置(必然会加载) # app-dev.yml #应用dev环境配置 # app- ...