oracle汉字占用字节长度,oracle汉字字节

1、        今天调查一个oracle数据库问题的时候,发现在11g中一个汉字占2个字节,在10g中占3个字节,导致将11g数据库中的数据导入到10g的时候总是出错,开始的时候还以为是11g和10g的版本不一样,汉字占用字节数不一样,后来一想,oracle不会这么干吧,那样差别也太大了,后来一调查,发现是跟oracle的字符集编码有关:

如果是以下字符集,一个汉字占用2个字节:      SIMPLIFIED CHINESE_CHINA.ZHS16GBK

如果是以下字符集,一个汉字占用3个字节:      SIMPLIFIED CHINESE_CHINA.AL32UTF8

(1)查看oracle字符集可以用下面的sql文查看:

select userenv('language') from dual

(2)查看当前oracle环境中一个汉字占多少个字节可以用下面的sql文查看:

select lengthb('啊') from dual

关于oracle字符集相关的知识(包括字符集查看和修改),主要参照:

http://www.cnblogs.com/rootq/articles/2049324.html

http://blog.csdn.net/uestcong/article/details/7348008

oracle汉字占多少字节问题

之前本人认为一个汉字都是占两个字节的,MSSQL Server如此(至少在我的理解范围之内,如果有误还请大家纠正)。但是最近在使用Oracle数据库,发现了一些特殊的东西,那就是,当你用两个函数(分别是length和lengthb,这两个函数到底是干什么用的,我想不需要我说明,大家查帮助就可以了)进行查询时,发现结果是lengthb是length的三倍(当然前提是length函数中的参数都是汉字了),这就奇怪了,不是说汉字占两个字节吗?怎么这里变成了三个?于是上网找资料,还真被我找到了。这个其实和Oracle的配置是相关的,用以下语句查询:select * from v$nls_parameters t where t.PARAMETER='NLS_CHARACTERSET';可以查询到当前数据库的字符集,如果value=ZHS16GBK,那么一个汉字占用2个字节,如果value=AL32UTF8,那么一个汉字占用3个字节。于是查询了一下本人的数据库,字符集果然是AL32UTF8(这是Oracle数据库默认的)。

ORACLE中一个字符占多少字节?

22.1 问题描述或许你会说一个中文字符占2个字节,这是一定的?如何计算一个字符串的字节数?22.2 解决方案在oracle中一个字符特别是中文占几个字节是不同的。比如我创立一个表create table test_ly(a varchar2(4),b nvarchar2(4))你说a列能插入两个汉字吗?错!最多能插入一个汉字加一个字母(或数字)。这是为什么?因为一个汉字在a字段中占了3个字节,其他字符(比如数字或者字母或者英文标点符号)占1个字节,你说b列最多能插入多少个汉字,2个?错!b列最多能插入4个汉字,b列的一个汉字或者其他字符(比如数字或者字母或者英文标点符号)占2个字节。 由此可见,N开头的字段类型(比如NCHAR,NVARCHAR2)中,任何一个字符(包括一个汉字)占2个字节,统一的。不以N开头的字段类型(比如CHAR,VARCHAR2)中,unicode字符(比如汉字)占3个字节,其他字符占1个字节。 如何求一个字符串占用的字符数和字节数?Length 函数求得是占用字符数,lengthb或者vsize函数求得是占用字节数。你说 中华12 这个字符串占用了多少字符,字节?看sql返回值便清楚了。select length('中华12') from dual --返回4,也就是占用4个字符select lengthb('中华12') from dual --返回8,也就是占用8个字节,其中中华儿子各占3个字节,而12两个字符各占一个字节select lengthb(N'中华1') from dual --返回6,这是将字符串转换成为unicode字符串后,每个字符占用2个字节,3个就是6个字节select length(N'中华1') from dual --返回3,因为只有3个字符嘛。 字符串类型字段默认的长度是以字节为单位的,具体取决于参数nls_length_semantics 的值(使用show parameters可以看到这个参数的值),默认是BYTE,也就是以字节为单位的,如果是CHAR则是以字符为单位的。表的某列可以使用字符为单位吗?当然可以,比如这样创建即可:create table test_ly(a varchar2(4 char)) 这样a列就最多能保存4个字符,而不是4个字节了。

http://www.htsjk.com/shujukunews/4403.html

www.htsjk.Com

true

http://www.htsjk.com/shujukunews/4403.html

NewsArticle

oracle汉字占用字节长度,oracle汉字字节 1、 今天调查一个oracle数据库问题的时候,发现在11g中一个汉字占2个字节,在10g中占3个字节,导致将11g数据库中的数据导入到10g的时候总是出错...

本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.

同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。

oracle标点占24个字符,oracle汉字占用字节长度,oracle汉字字节相关推荐

  1. js获取字符串长度,中文占一个字符,英文占0.5字符,并截取指定长度字符串

    var str = "*******************"var len = 0;var len2 = 0;for (var j = 0; j <str .length; ...

  2. 三、获取指定长度的汉字,数字,字母,手机号,身份证号等

    一.获取指定长度的大小写数字组合 /** * 随机生成指定长度的大小写数据组合的字符串 * @param length * @return */ public static String getRan ...

  3. mysql汉字占几个字符_mysql和oracle的一个汉字占几个字符

    以前一直使用oracle11g,一个汉字占3个字节,所以在操作mysql时也一直这样分配长度. 今天测试了下发现不对了 可以看到第一个的长度确实是15,但是第二个为什么是5? 在网上找到资料:char ...

  4. oracle一个汉字三个字节,1个汉字在UTF-8编码占3个字节

    8. 实例 下面,举一个实例. 打开"记事本"程序Notepad.exe,新建一个文本文件,内容就是一个"严"字,依次采用ANSI,Unicode,Unicod ...

  5. oracle中文占3,Oracle一个中文汉字占用几个字节

    Oracle一个中文汉字占用几个字节,要根据Oracle中字符集编码决定. --查看oracle server端字符集 select userenv('language') from dual; -- ...

  6. Oracle数据类型及存储方式——字符类型篇

    注:这篇文章绝大部分都摘抄于袁光东先生的  <<oracle小组学习笔记>>. 下面会对各种字符类型作详细解释. 一. char 类型 oracle 可以定义1个char(n) ...

  7. MySQL数据库与Oracle数据库在存储中文字符以字节或字符存储的区别

    一.Oracle数据库存储中文字符 Oracle数据库可以以字节或者字符来存储字符串的,一般来说默认是存储字节,你可以查看数据库NLS_LENGTH_SEMANTICS的值. 可以看到Oracle数据 ...

  8. mysql 英文占几个字符_MySQL 数据库 varchar 到底可以存多少个汉字,多少个英文呢?我们来搞搞清楚...

    一.关于 UTF-8 UTF-8 Unicode Transformation Format-8bit.是用以解决国际上字符的一种多字节编码. 它对英文使用 8 位(即一个字节) ,中文使用 24 位 ...

  9. JDBC读取Oracle的US7ASCII编码中文乱码及不同编码下汉字占用字节的问题

    数据库版本:Oracle 10g 字符集:SIMPLIFIED CHINESE_CHINA.US7ASCII JDK:1.6.0_45 Oracle驱动:ojdbc14.jar 使用JDBC操作数据库 ...

  10. java 英文字符 字节_3、在JAVA语言中,每个英文字符占 个字节,每个中文汉字占( )个字节。...

    [判断题]中心原子中的几个原子轨道杂化时,必形成数目相同的杂化轨道. [单选题]集合 用区间表示正确的是 ( ) [单选题]15.Java语言的类间的继承关系是 [单选题]8.编译Java Appli ...

最新文章

  1. 【206】Firefox 扩展收集
  2. BFS之三(单向bfs和康托压缩)
  3. python django web项目的构建步骤(一)
  4. 最好的电脑系统_安装电脑系统不求人,教你如何自己动手装系统!值得收藏学习...
  5. 技术人员究竟应该如何保持快速学习的能力?
  6. 什么是java构造函数_什么是java构造函数
  7. 基于Java+SpringBoot+vue+element实现前后端分离牙科诊所管理系统详细设计
  8. 该学Java或.NET?
  9. pads layout PCB整体旋转,不改变布局并保留连线
  10. 怎么用计算机技术预测蛋白质结构,蛋白质结构预测及方法介绍 一搜索无重复 - 生物科学 - 小木虫 - 学术 科研 互动社区...
  11. 使用Dom4j创建xml文档
  12. java剪刀石头布编程_Java如何编写石头剪子布游戏程序
  13. windows切换桌面的快捷键
  14. 零钱兑换问题c语言编程,leetcode- 零钱兑换 II(背包问题-总结-复盘)
  15. 傅立叶逼近 matlab,傅里叶逼近.doc
  16. java把URL转换成二维码并保存在指定的位置
  17. JetPack Compose之Modifier修饰符
  18. 分解质因数(java)
  19. 如何设计安全可靠的开放接口---之AppId、AppSecret
  20. FSL安装教程(Ubuntu)

热门文章

  1. DCIC-早高峰共享单车潮汐点的群智优化(1)
  2. python 图像可视化_Python 可视化与图像处理
  3. HTML标题处有一个小图片
  4. tiny4412 busybox制作根文件系统rootfs nfs 挂载 ubuntu 14.04
  5. win10+nginx+php7+mysql
  6. #Day Day Plan# 《NCB_PCI_Express_Base 5.0.1.0》pdf 译文笔记
  7. 科技介入双十一,刷单职业化,谁才是背后最大的受益者?
  8. ESD闸机门禁管理系统的构成
  9. Springboot动态实现定时任务
  10. Swift 了解(1)