`

ORACLE中一个字符占多少字节

 
阅读更多

在oracle中一个字符特别是中文占几个字节是不同的。

比如我创立一个表create table test_ly(a varchar2(4),b nvarchar2(4))

错!最多能插入一个汉字加一个字母(或数字)。

你说b列最多能插入多少个汉字,2个?



不以N开头的字段类型(比如CHAR,VARCHAR2)中,unicode字符(比如汉字)占3个字节,其他字符占1个字节。

如何求一个字符串占用的字符数和字节数?

你说 中华12 这个字符串占用了多少字符,字节?看sql返回值便清楚了。

select lengthb('中华12') from dual  --返回8,也就是占用8个字节,其中中华儿子各占3个字节,而12两个字符各占一个字节

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个字节了。

分享到:
评论

相关推荐

    Oracle中如何用SQL检测字段是否包括中文字符

    首先我想到的是采用检测每个字节ASCII的方式,这样的话需要写一个自定义函数,然后SQL中调用得到结果。但是感觉这个方法估计很耗时,毕竟每个字符都要比较,所以没有去实现。突然想到Oracle有一个编码转换的函数叫...

    Oracle中如何用SQL检测字段是否包括中文字符.doc

    首先我想到的是采用检测每个字节ASCII的方式,这样的话需要写一个自定义函数,然后SQL中调用得到结果。但是感觉这个方法估计很耗时,毕竟每个字符都要比较,所以没有去实现。突然想到Oracle有一个编码转换的函数叫...

    oracle 字符集乱码解决

    由于历史的原因,早期的oracle没有中文字符集(如oracle6、oracle7、oracle7.1),但有的用户从那时起就使用数据库了, 并用US7ASCII字符集存储了中文,或是有的用户在创建数据库时,不考虑清楚,随意选择一个默认的...

    Oracle接收长度大于4000的字符串

    Oracle接收长度大于4000的字符串 Oracle接收长度大于4000的字符串

    对字符进行截取

    oracle中的substr是针对字节进行截取,当处理对中文汉字时,非常不方便,通过对其封装,可以实现对字符进行截取。

    oracle求字符串长度函数length()和hengthb()简介

    一个汉字在Oracle数据库里占多少字节跟数据库的字符集有关,UTF8时,长度为三。 select lengthb(‘飘’) from dual 可查询汉字在Oracle数据库里占多少字节 以上就是本文关于Oracle求字符串长度函数le

    Oracle截取字符串去掉字段末尾指定长度的字符

    lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节 ...【备注】一个汉字在Oracle数据库里占多少字节跟数据库的字符集有关,UTF8时,长度为三 PS:oracle去掉字符串中所有指定字符 Selec

    如何处理错误ORA-29275:部分多字节字符

    在运行查询SELECT * FROM V$SESSION 会出现ORA-29275:部分多字节字符的错误,这是什么原因开始我不得其解,网上也没有介绍什么好办法。本文给出答案。

    Oracle数据转储时字符集的转换规律

    在Export过程中,如果源数据库字符集与Export用户会话字符集不一致,会发生字符集转换,并在导出的二进制格式Dmp文件的头部几个字节中存储Export用户会话字符集的ID号。在这个转换过程中可能发生数据的丢失。 正确...

    Oracle 基础语句 函数大全(字符串函数

    --把最左边的字符去掉,使其第一个字符不在其中 select ltrim('Mississippi','Mis') from dual; select ltrim('Mississippi','miD') from dual; --RPAD右侧用字符串补足到一定长度 select RPAD('DFSDf.................

    oracle查看字符集和修改字符集使用详解

    一、什么是Oracle字符集Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序...

    Oracle 插入超4000字节的CLOB字段的处理方法

    我们很有可能会遇到需要插入大型数据的情况,例如,在oracle中需要插入字节数超过4000的字段内容时,我们如果通过简单的拼组sql语句来实现插入,显然就会出现问题,而在sql server中却没有这个限制,个人尝试了26w个...

    Oracle 数据类型

    3、NCHAR和nvarchar2,NCHAR和CHAR区别在于NCHAR用来存储Unicode字符集类型,即双字节字符数据,CHAR是一个字节,而NCAHR是一个字符(两个字节),前者是CHAR(1)无法插入‘的’,后者是NCHAR(1)可以插入‘的’ ...

    用SQL语句截取字符串

    用SQL语句截取字符串, string substr ( string string, int start [, int length]) 参数1:处理字符串 参数2:截取的起始位置(第一个字符是从0开始) 参数3:截取的字符数量

    修改Oracle字符集(character set)

    需要注意的是, 使用此方法会破坏数据库中的原有双字节字符. 一种办法是先将数据库导出, 修改完字符集后再导入; 另一种办法就是不管他, 就那样使用. 一般如果是一个测试环境, 像方法二那样就可以了, 但是可能某些表...

    修改oracle字符集

    Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容联系。ORACLE 支撑国家语言的体系结构允许你运用本地化语言来存储,处理,检索数据。它使数据库工具,不正确消息,排序次序,日期,时间,货币...

    深入Oracle字符集的查看与修改详解

    一、什么是Oracle字符集 Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    说明:Oracle中要删除一个用户,必须要具有dba的权限。而且不能删除当前用户,如果删除的用户有数据对象,那么必须加上关键字cascade。 用法:drop user 用户名 [cascade] 四、 用户权限与角色 1. 权限 Oracle中权限...

    向Oracle数据库的CLOB属性插入数据报字符串过长错误

    今天在项目中向数据库的CLOB属性插入一段篇文章(1000~2000)字就会报一个字符串过长的错误。 网上说用流来处理,没有这么做。这像是一个Bug,只要把插入的数据,默认扩充到2000以上就ok了。 下面是这段代码: if(...

    ORACLE构架体系.

    DATE用于存储全部日期的固定长度(7个字节)字符域,时间作为日期的一部分存储其中。除非 通过设置init.ora文件的NLS_DATE_FORMAT参数来取代日期格式,否则查询时,日期以 DD-MON-YY格式表示,如13-APR-99表示1999.4...

Global site tag (gtag.js) - Google Analytics