Oracle里Varchar的参数(byte和char)的区别测试

oracle中varchar2(byte)和varchar2(char).doc oracle中varchar2(byte)和varchar2(char) 细节决定成败,大家在设计数据库建表的时候一定要注意。 立即下载

 1 看一下语法图



2 下面进行sqlplus的测试,使用scott/tiger帐号。

SQL> create table test(name varchar(5 byte),namec varchar(5 char));

表已创建。

SQL> insert into test(name) values('12345');

已创建 1 行。

SQL> insert into test(name) values('123456');
insert into test(name) values('123456')
                              *
第 1 行出现错误:
ORA-12899: 列 "SCOTT"."TEST"."NAME" 的值太大 (实际值: 6, 最大值: 5)


SQL> insert into test(name) values('天津');

已创建 1 行。

SQL> insert into test(name) values('天津市');
insert into test(name) values('天津市')
                              *
第 1 行出现错误:
ORA-12899: 列 "SCOTT"."TEST"."NAME" 的值太大 (实际值: 6, 最大值: 5)


SQL> insert into test(namec) values('12345');

已创建 1 行。

SQL> insert into test(namec) values('123456');
insert into test(namec) values('123456')
                               *
第 1 行出现错误:
ORA-12899: 列 "SCOTT"."TEST"."NAMEC" 的值太大 (实际值: 6, 最大值: 5)


SQL> insert into test(namec) values('天津');

已创建 1 行。

SQL> insert into test(namec) values('天津市');

已创建 1 行。

SQL> insert into test(namec) values('天津市北京');

已创建 1 行。

SQL> insert into test(namec) values('天津市北京市');
insert into test(namec) values('天津市北京市')
                               *
第 1 行出现错误:
ORA-12899: 列 "SCOTT"."TEST"."NAMEC" 的值太大 (实际值: 6, 最大值: 5)


SQL> select * from test;

NAME  NAMEC
----- ----------
12345
天津
      12345
      天津
      天津市
      天津市北京

已选择6行。

SQL>


3 分析
由于一个汉字在我的GBK系统里占用2个字节,所以byte的只能插入2个汉字,而char的可以插入5个汉字。
所以byte 就是字节数,对于汉字,GBK占用2个字节,如果是UTF-8则占用3个字节。

为了充分利用4000个的上限,给自己减少麻烦,建议存储含有中文文字的字段时,采用char类型。

3D识别建模 — 基于ReconstructMe和EAGLE EYES SCANNER的实现 3D实体识别建模,作为3D打印反向工程的一个重要环节,今天就让我们利用ReconstructMe和EAGLE EYES SCANNER来了解一下。 第一步、软件和硬件准备就绪 ReconstructMe下载并安装 http://reconstructme.net/?wpdmdl=160 EAGLE EYES SCANNER直接将相应USB插入电脑接口即OK,之后在    中点击搜索“设备管理... 阅读详情

相关推荐

稀疏变分高斯过程【超简单,全流程解析,案例应用,简单代码】

稀疏变分高斯过程(Sparse Variational Gaussian Processes, SVGP)是一种高效的高斯过程(GP)近似方法,它使用一组称为引入点的固定数据点来近似整个数据集。这种方法大大减少了高斯过程模型的计算复杂度,使其能够适用于大数据集。下面是SVGP的详细数学过程。在标准高斯过程中,给定数据集xiyii1N{(xi​yi​i1N​,目标是学习一个映射fff,其中f∼GPmkf∼GPmkmmm是均值函数,kkk。

刘文凯的博客 3658

oracle中的数据类型:varchar2(byte)和varchar2(char)

varchar2(byte) 存储的是字节。 varchar2(char) 存储的是字符。 比如:varchar2(2 byte) 最多可以存储2个字节;varchar2(2 char) 最多可以存储2个字符。 当数据库字符集为 AL32UTF8 时,一个汉字是一个字符,一个汉字占3个字节,varchar2(2 byte) 一个汉字也不能存,varchar2(2 char) 能存2个汉字。 ...

大白的专栏 1万+

做蛋白组学数据分析,竟然还不会使用DIA-NN软件,走过路过不要错过,进来免费学习!!!

蛋白组学分析工具DIA-NN使用

wcy1995427的博客 9865

mysql中varchar长度为多少

可以看见当设置长度为65533时,已经超过行最大长度,我们可以计算一下,行最大长度是65535字节。还有默认为空,那么还有null标识位,( 1 + 7 ) / 8 =1,所以null标识位占用1个字节。现在我们来看看,65533 + 1 + 2=65536字节,已经大于行最大长度。这里2字节怎么来的?每个NULL字段用1bit标识,10个字段都是default null,那么需要用(10+7)/8bit = 2 bytes存储NULL标识位。那么上面这条语句中的varchar(N)的最大值是多少呢?

cccfire的博客 5871

黑猫带你学eMMC协议第11篇:eMMC擦除详解(erase/trim/discard/sanitize/secure erase/secure trim...)

erase命令单位是擦除组,那么一个擦出组包含多个写块,不同写块有不同信息,主机擦除之前,必须进行确定好这些写块中的信息没有用了。所以通常erase用来擦除整个设备或分区。erase完成后,将erase的区域都要么是全0,要么是全1。那么到底是0还是1呢,根据不同的工艺有所不同,但是别担心,在ecsd[181]中会有说明到底是1还是0。erase命令的作用就是简单的将映射地址范围移动到未映射的地址范围。

黑猫奥利奥的博客 7796

Oracle的VARCHAR2类型中的BYTE与CHAR参数

<br />CREATE TABLE TEST(<br />NAME VARCHAR2(2)<br />)<br /> <br />INSERT INTO TEST VALUES('测试');<br /> <br />在windows环境下:<br /><br /> <br />可见在windows默认情况下,VARCHAR2(2) 就等于是 VARCHAR2(2 BYTE)  一个汉字占2个字节<br /> <br />在linux环境下:<br /><br /> <br />可见在linux默认情况下,

hany233的专栏 1487

1小时读完100篇文献的正确打开方式

各位同仁好,我是七哥。一个在高校里从事人工智能 相关领域研究,钻研用大模型AI实操的学术人。可以和七哥交流学术写作或Gemini、GPT、Claude 等大模型 学术实操相关问题,多多交流,相互成就,共同进步。文献阅读与整理一般都是最先开始、却也最容易被低估的一步。很多学术同仁一开始就陷入越读越多、越读越乱的状态:论文下载了一大堆,但真正能用来支撑自己观点的内容却始终难以提炼出来。一方面,我们需要通过文献了解该研究领域的整体发展脉络,把握当前学界已经讨论到什么程度;

智能AI让学术科研更容易 49

oracle 定义 byte,有关oracle字符与字节的整理

平时工作中,偶尔会有关于字符与字节的困惑,今天闲暇之余,特意整理一下。术语:位(bit):是计算机 内部数据 储存的最小单位,11001100是一个八位二进制数。字节(byte):是计算机中 数据处理 的基本单位,习惯上用大写 B 来表示,1B(byte,字节)= 8bit(位)字符:是指计算机中使用的字母、数字、字和符号说明:在oracle中,NVARCHAR2、NCHAR使用的是国家字符集...

weixin_30443729的博客 1430

SAP 消息号T-CODE

SAP消息号修改汇总 确实有很多消息是可以修改的 FI: oBA5|oFMG|oFPM MM: oMRM|oKZZ|oMT4|oMCQ|o04C| SD: oVAH(V4)|oVM1(VL) CO:  oPR4_ACT|oPR4_CK|oPR4_CKML|oPR4_CKPF|oPR4_KKA|oPR4_KKP|oPR4_KKS| oPR4_KKS1|oPR4_P

heng0757的专栏 1万+

C# 与 PaddleOCR:一行代码实现高效图片文字识别的实战指南

本文介绍了如何使用 PaddleOCRSharp 进行图像文字识别,涵盖了从环境准备到高级功能的完整流程。首先,通过 NuGet 安装 PaddleOCRSharp 并下载预训练模型。接着,展示了单张图片识别的最小化示例和详细实现,包括模型配置、图片预处理和结果输出。进阶功能部分介绍了多语言和竖排文本识别的实现方法。此外,文章还提供了 WinForms 图形界面开发的完整示例,展示了如何通过界面加载图片、执行识别并展示结果。最后,探讨了批量处理优化策略,如并行处理多张图片以提高性能。通过这些步骤,开发者可以

墨夶的博客 1004

oracle里返回值吗,Oracle有返回值的存储过程 | 学步园

创建一个有输入输出的存储过程:CREATE OR REPLACE PROCEDURE sp_pro8(spno IN NUMBER,spName OUT VARCHAR2)ISBEGINSELECT ename INTO spName FROM emp WHERE empno=spno;END;Java代码:package com.wfc.test;import java.sql.*;publi...

weixin_32389853的博客 210

UWB:FiRa Consortium UCI Generic Technical Specification v1.1.0(1)- UCI架构和通用数据包头

如果大家学习过WiFi的SPEC,比如从我的资源里面下载 IEEE 802.11-2007,应该很容易发现,FiRa的spec定义实在是太差了。有现成的好例子不学,非得自己来一套,搞一堆新的名词,其实都是一个意思。比如GID,OID等,而且GID、OID是最先出现的,但是对应表格 还得去附件的最后一项去找。 FiRa是UWB联盟,希望跟WIFi联盟学习一下,把UWB做大做强,而不是自成一派,自命不凡。

Ankie资深技术项目经理 2434

Oracle里Varchar的参数 byte和char 的区别测试

Oracle里Varchar的参数 byte和char 的区别测试

jgfyyfd的博客 796

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Oracle里Varchar、varchar2的参数(byte和char)的区别测试

Oracle里Varchar、varchar2的参数(byte和char)的区别测试 1 看一下语法图 2 下面进行sqlplus的测试,使用scott/tiger帐号。 SQL&gt; create table test(name varchar(5 byte),namec varchar(5 char));表已创建。 SQL&gt; insert into test(name) values(...

李小强(leaderbird)的专栏 449

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Oracle varchar2或char类型的byte和char的区别

Oracle定义字符串类型VARCHAR2和CHAR指定长度的用法如下:varchar2(<SIZE> <BYTE|CHAR>) <SIZE>是介于1~4000之间的一个数,表示最多占用4000字节的存储空间。char(<SIZE> <BYTE|CHAR>) <SIZE>是介于1~2000之间的一个数,表...

weixin_33923762的博客 392

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Oracle char内容相同,Oracle varchar2或char类型的byte和char的区别

Oracle定义字符串类型VARCHAR2和CHAR指定长度的用法如下:varchar2( ) 是介于1~4000之间的一个数,表示最多占用4000字节的存储空间。char( ) 是介于1~2000之间的一个数,表示最多占用2000字节的存储空间。那其中的BYTE和CHAR有什么区别呢BYTE,用字节指定:VARCHAR2(10 BYTE)。这能支持最多10字节的数据,在一个多字节字符集中,这可能...

weixin_39617669的博客 566

详解Oracle数据库int、number类型和char、varchar、varchar2类型的区别

概述 简单汇总下oracle数据库int、number和char、varchar、varchar2的区别 1、oracle中int与number的区别 oracle本来就没有int类型,为了与别的数据库兼容,新增了int类型作为number类型的子集。int类型只能存储整数;number可以存储浮点数,也可以存储整数; number(8,1)存储小数位为1位,总长度为8的浮点数,如果小数位数不足,则用0补全; number(8)存储总长度为8的整数; int相当于number(22),存储总长度为22的整数

淡定波的博客 1万+

oracle批量修改数据库中表字段类型varchar2(Byte)->varchar(Char)

批量修改oracle的varchar2类型参数(Byte修改为Char) varchar2(byte) 和varchar2(char) 的区别 varchar2(byte) 存储的是字节。 varchar2(char) 存储的是字符。 1.为 AL32UTF8 时,1个汉字是1个字符,1个汉字占3个字节,varchar2(2 byte) 一个汉字也不能存,varchar2(2 char) 能存2个汉字。 2.为 ZHS16GBK时,1个汉字是1个字符,1个汉字占2个字节,varchar2(2 byte) 能

weixin_44312378的博客 2912

oracle有关varchar2和char的定义方式区别

在ODI同步中碰到的问题,记录一下:   前述:最近从生产往测试同步数据出现问题,具体报字段值过大的异常,检查了以下总结问题如下 eg: varchar2(30)与varchar2(30 CHAR)的区别        ||                           || 按字节存储                   按字符存储 这里的30表示字符个数 这里的30

qingqingxuelang的专栏 824

别再混淆了!一文搞懂Oracle中CHAR, VARCHAR2, NCHAR, NVARCHAR2的字符与字节存储差异

本文深入解析Oracle中CHAR、VARCHAR2、NCHAR和NVARCHAR2的字符与字节存储差异,帮助开发者避免常见陷阱。通过对比存储机制、字符集依赖和性能影响,提供多语言支持实践和版本演进中的长度限制变化,助力精准选择字符类型,优化数据库设计。

weixin_30907935的博客 1089

Oracle里varchar2(char)和varchar2(byte)的区别 (转)

SQL&gt; create table test(name varchar(5 byte),namec varchar(5 char));表已创建。 -----------------------byte测试------------------------------------SQL&gt; insert into test(name) values('12345');已创建 1 行。SQL&...

frank1998819 527
上一篇: Oracle数据库的测试用户Scott的密码为什么是Tiger?
下一篇: 昨晚月圆,有人变成大猩猩吗?
老紫竹
博客等级 码龄19年 1万+粉丝 1252原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值