在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关于时间/日期的操作
2012-04-09 23:12 8551.日期时间间隔操作 当前时间减去7分钟的时间 s ... -
oracle 数据库增量备份
2012-03-16 20:03 1164EXP和IMP是Oracle提供的一种逻辑备份工具。逻辑备份创 ... -
oracle start with connect by 用法
2012-02-19 23:58 1029oracle 提供了start with connect by ... -
Oracle数据导入导出imp/exp
2012-02-09 17:38 625Oracle数据导入导出imp/exp 功能:Oracle数 ... -
性能监控SQL语句
2011-12-23 13:51 831分析表 analyze table tablename co ... -
常用SQL语句
2011-12-23 13:50 984查找数据库中所有字段 以对应的表 select C.colu ... -
安装到最后的两个脚本作用
2011-12-06 18:32 1050在linux下安装Oralce的时候,最后会让你以root的身 ... -
提高SQL效率
2011-12-01 00:13 1030下面就某些SQL 语句的 where 子句编写中需要注意 ... -
“exists”和“in”的效率问题
2011-11-30 23:49 1022有两个简单例子,以说明 “exists”和“in”的效率问题 ... -
Oracle建立全文索引详解
2011-11-30 20:42 14761.全文检索和普通检索的区别 不使用Oracle text功 ... -
全文检索CLOB
2011-11-30 12:00 997建议使用全文检索(FULL TEXT SEARCH) ... -
“Oracle”数据库的“周数计算”
2011-11-16 13:25 994——日期计算,算第n周的第一天及最后一天是几号。 by key ... -
Oracle中TO_DATE格式
2011-11-16 13:17 837TO_DATE格式(以时间:2007-11-02 13:4 ... -
Oracle 索引 详解
2011-11-15 13:00 26048Oracle 索引 详解 ... -
Oracle SQL中的IN 和 EXSITS区别总结
2011-11-15 11:06 1014IN 确定给定的值是否与子查询或列表中的值相匹配。 EX ... -
Oracle 字符集的查看和修改
2011-11-14 23:09 952一、什么是Oracle字符集 ... -
Oracle Flashback技术总结
2011-11-14 01:06 965Flashback 技术是以Undo segment中的内容为 ... -
oracle日志归档模式改变
2011-11-14 00:15 1113在Oracle数据库中,主要 ... -
如何最大程度的 把表空间里面的数据给抢救出来
2011-11-03 16:18 1268今天一朋友问到一个比较有意识的问题: 如果一个表空间,其中一个 ... -
oracle 性能优化建议小结
2011-10-24 23:45 446原则一:注意WHERE子句 ...
相关推荐
首先我想到的是采用检测每个字节ASCII的方式,这样的话需要写一个自定义函数,然后SQL中调用得到结果。但是感觉这个方法估计很耗时,毕竟每个字符都要比较,所以没有去实现。突然想到Oracle有一个编码转换的函数叫...
在 Oracle 中,CHAR 类型区分中英文,中文占两个字节,而英文占一个字节。因此,CHAR(20) 可以存储 20 个英文字符或 10 个中文字符。CHAR 类型适用于长度比较固定的,一般不含中文的情况。 二、VARCHAR 类型 ...
#### 一、Oracle字符集概述 在Oracle环境中,字符集用于定义如何表示和存储字符数据。一个完整的字符集由语言(Language)、地区(Territory)和编码(Charset)三部分组成。例如,`NLS_LANG=AMERICAN_AMERICA.ZHS...
- **单字节字符集(Single Byte Character Set, SBCS)**:每个字符由一个字节表示。 - **多字节字符集(Multi Byte Character Set, MBSCS)**:每个字符由多个字节表示。 - **Unicode字符集**:使用统一的编码标准来...
在Oracle数据库操作过程中,用户可能会遇到一个特定的错误提示——ORA-29275:部分多字节字符。这一错误通常出现在执行查询`SELECT * FROM V$SESSION`时。该错误的出现意味着在查询结果中存在一些多字节字符(通常是...
创建一个OracleCommand对象,并通过参数化方式将Byte[]数组作为参数传递给存储过程。 ```csharp OracleCommand cmd = new OracleCommand(); cmd.Parameters.Add(new OracleParameter("xxxx", bt)); ``` #### 2. ...
Oracle 字符集是一个字节数据的解释的符号集合,具有大小之分,具有相互的包容关系。Oracle 支持国家语言的体系结构允许使用本地化语言来存储、处理、检索数据。 一、什么是 Oracle 字符集 Oracle 字符集是一个...
Oracle 字符集是数据库系统中一个至关重要的概念,它决定了数据如何被编码、存储和解析。Oracle 支持多种字符集,以满足不同地区和语言的需求。本文将深入探讨 Oracle 字符集的查看、修改以及相关知识。 首先,...
Oracle字符集专题是一个深入探讨Oracle数据库字符集配置、管理和常见问题解决的综合资源。这个专题涵盖了从基础概念到实际操作的多个方面,旨在帮助用户全面理解并有效处理与Oracle字符集相关的各种问题。 首先,...
在 ORACLE 数据库中,汉字占用的字节数是一个常见的问题。根据数据库的字符集编码,一个汉字可以占用不同的字节数。在 AL32UTF8 或 UTF8 编码下,一个汉字通常占用 3 到 4 个字节,而在 ZHS16GBK 编码下,一个汉字...
在使用 JDBC(Java Database Connectivity)连接 Oracle 数据库时,可能会遇到一个常见的问题:从远程 Oracle 数据库获取的数据出现乱码现象。这种情况通常发生在远程 Oracle 数据库与本地 Oracle 数据库的字符集...
例如,一个汉字在单字节字符集(如US7ASCII)中占用2个字节,而在多字节字符集(如ZHS16GBK)中只占用1个字节。 - **客户端字符集**:决定了从数据库检索出的数据在客户端的应用程序中的显示形式。服务端和客户端...
- `ASCII(char)`: 获取`char`中第一个字符的ASCII值。 - `CHAR(number)`: 根据给定的ASCII值`number`返回相应的字符。 - `REPLACE(char,str1,str2)`: 将`char`中所有的`str1`替换为`str2`。 - `INSTR(char1,char...
Oracle数据库支持多种字符集,包括单字节字符集(如ASCII)和多字节字符集(如UTF-8)。正确的字符集选择对于避免乱码、提高数据完整性以及优化性能具有重要意义。 ### 修改Oracle数据库字符集的原因及挑战 #### ...
由于历史的原因,早期的oracle没有中文字符集(如oracle6、oracle7、oracle7.1),但有的用户从那时起就使用数据库了, 并用US7ASCII字符集存储了中文,或是有的用户在创建数据库时,不考虑清楚,随意选择一个默认的...
- UTF-8 是一种变长多字节编码,可以用 1、2 或 3 个字节表示一个 Unicode 字符。 **3.4 字符集超级** 当一种字符集 A 的编码数值包含所有另一种字符集 B 的编码数值,并且两种字符集相同编码数值代表相同的字符...