[转帖]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 ...
随机推荐
- 从零玩转Websocket实时通讯服务之前后端分离版本
前言 公司项目需要用到消息提示,那么WebSocket它来了经过我面向百度的学习,废话不多说直接开干. 后端搭建 一.依赖导入 <dependency> <groupId>or ...
- Python——第二章:字典的循环、嵌套、"解构"(解包)
字典进阶操作 -- 循环和嵌套 字典的循环 我们先看直接打印字典的样子,会分别对每对key:value进行打印,并使用,分隔他们 dic = { "赵四": "特别能歪嘴 ...
- C语言基础之因子分解
要求: 从键盘输入一个正整数,然后将该整数分解为1和各个质因子的相乘,如果输入的整数本身就是质数,则应分解为1和该数本身相乘. 输出格式: 因子分解,因子由小到大输出. 如:1* 2* 2* 3 代码 ...
- zabbix常用监控项
https://blog.csdn.net/xkjcf/article/details/78559273?locationNum=10&fps=1 agent.ping #agent是否在线 ...
- Docker 部署工具
Docker 容器的创建比较简单,容器解决了应用程序对于运行环境的依赖问题,但是在当前所处的微服务盛行的情况下,手动管理容器是一件比较重复其及其枯燥的工作,这项工作理论上可以通过计算机来完成,因此涌现 ...
- 华为云UGO:醒醒!你的异构数据库迁移难题有救了
摘要:华为云推出的数据库和应用迁移 UGO,正是一款专注于异构数据库结构迁移和应用SQL转换的专业云服务. 数字化时代下,上云已成为企业管理者的基本共识,随着技术日新月异,上云也变得轻松简单起来,但异 ...
- Gzip之后继者Brotli浅析之CDN厂商的智能压缩,服务器Brotli设置
"智能压缩"按照又拍云的说法是,同时支持 Gzip 和 Brotli 压缩算法.根据用于浏览器开启自动选择不同压缩方式. Gzip 压缩算法 Gzip 基于 DEFLATE 算法, ...
- 多领域应用落地,火山引擎ByteHouse加速云数仓升级
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,火山引擎数智平台VeDI直播活动「超话数据」在线举办,来自火山引擎的产品及解决方案专家分享了以ByteH ...
- DataLeap的全链路智能监控报警实践(三): 系统实现
系统实现 整体架构 基线管理模块:负责基线创建.更新.删除等操作,管理基线元信息,包括保障任务,承诺时间,余量及报警配置等): 基线实例生成:系统每天定时触发生成基线实例,生成实例的同时根据保障任务, ...
- Python异步编程并发比较之循环、进程、线程、协程
服务端 现在有一个api接口 http://127.0.0.1:18081/hello 批量请求该接口,该接口中有一个5s的阻塞.使用循环,多进程,多线程,协程等四种方式,一共请求10次,比较总的请求 ...