摘自:https://wenda.so.com/q/1513900100217695?src=170&q=varchar2%281%29%E5%A4%9A%E5%A4%A7

varchar2是oracle中独有的类型,可以存储0-20个数字(英文写法),如果是中文数字的话只能存储10个。

创建测试表:

create table test
(id int,
name varchar2(20));

执行这句,这里是21个数字:

insert into test values (1,'123456789012345678901');

测试一下中文数字:

insert into test values (1,'一二三四五六七八九十一');

结果是雷同的:

所以,varchar2(20)只能存20个数字,或十个中文。

 


该部分摘自:https://www.cnblogs.com/Grand-Jon/p/7389427.html

一、Oracle中的varchar2类型

  1. 我们在Oracle数据库存储的字符数据一般是用VARCHAR2。VARCHAR2既分PL/SQL Data Types中的变量类型,也分Oracle Database中的字段类型,不同场景的最大长度不同。

  2. 在Oracle Database中,VARCHAR2 字段类型,最大值为4000;PL/SQL中 VARCHAR2 变量类型,最大字节长度为32767。

  3. 当 VARCHAR2 容纳不下我们需要存储的信息时,就出来的Oracle的大数据类型LOB( Large Object,大型对象)。


 

二、Oarcle中的LOB类型

  1. 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了。因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种类型的字段,很灵活,适用于数据量非常大的业务领域(如图象、档案等)。

  2. LOB类型分为BLOB和CLOB两种:BLOB即二进制大型对象(Binary Large Object),适用于存贮非文本的字节流数据(如程序、图象、影音等)。

  3. 而CLOB,即字符型大型对象(Character Large Object),则与字符集相关,适于存贮文本型的数据(如历史档案、大部头著作等)。