oracle中字段类型varchar2最大长度是多少?

 我来答
freechan10
2019-11-13 · TA获得超过2.9万个赞
知道小有建树答主
回答量:263
采纳率:68%
帮助的人:12.4万
展开全部

1、varchar2有两个最大长度:一个是在字段类型4000;一个是在PL/SQL中变量类型32767。这是一个比较容易出错的地方。

2、因为在函数中可以声明长度超过4000的字符串变量,并且将它作为返回值,这里是不会提示编译错误的。这个函数平时都可以正常执行,而一旦这个字符串长度超过4000,函数执行就会出错。

3、在pl/sql中,建个函数,测试varchar2长度,可以看到函数是成功的;

4、但是在执行的时候,函数是会报错的;

扩展资料

1、varchar2是oracle提供的独有的数据类型,varchar2是存放可变长度的字符串,最大长度是4000.

2、在oracle中 varchar2的最大长度为4000 bytes,即varchar2(4000),最多能储存2000个汉字或4000位的数字字母。当储存值超过时可以使用clob(Character Large Object)或blob(Binary Large Object)类型。

3、varchar、varchar2、nvarchar2区别

1)varchar(50) 表示该字段类型为varchar2类型,长度为50,可以存单字节字符50个,如字母、数字等,可以存储双字节字符25个,如汉字。不同的是,若输入的不足,则以空格填充。

2)varchar2(50) 表示该字段类型为varchar2类型,长度为50,可以存单字节字符50个,如字母、数字等,可以存储双字节字符25个,如汉字。

3)nvarchar2(50)表示该字段类型为nvarchar2,长度为50,不论英文,数字,中文都能存50个。

参考资料

ORACLE数据库-百度百科

百度网友79faf363
2019-11-13 · TA获得超过1.1万个赞
知道小有建树答主
回答量:1212
采纳率:75%
帮助的人:53万
展开全部

4000字节长度。

比如,varchar2(100),就相当于varchar2(100 byte),表示最大字节数是100,该字段最多能容纳100个字节,强调空间大小。

由于我们描述的是字节,因此,保存汉字等字符时,如果数据库用的是GBK编码,那么一个汉字将占用2个字节,最多能存50个汉字,如果你的数据库用的是UTF8编码,那么一个汉字将占用3个字节,最多能存33个汉字。

扩展资料:

实际应用中,很可能会出现这种写法:varchar2(1400char),这个字段最长不能超过1400个字符,可能会存入1399个字符。

但是,如果这1399个字符都是汉字,字符长度并没有超过1400,但实际上损失了一部分数据。

因为1399个汉字,按UTF8编码来说,需要占用1399*3=4197个字节,而最大长度就是4000字节,一个也不能多,因此多出来的197个字节,都会抹去,而整个过程中,无任何错误提示。

对于GBK编码的数据库而言,安全的写法为:varchar2(2000 char)、nvarchar2(2000)。

对于UTF8编码的数据库而言,安全的写法为:varchar2(1333char)、nvarchar2(2000)。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
badkano
2015-09-11 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885359
团长

向TA提问 私信TA
展开全部

varchar2的最大存储长度是4000。

如以下语句:

create table test
(id varchar2(4001));

执行时会报错。

如果将语句改为如下,则会执行成功。

create table test
(id varchar2(4000));

关于oracle中的字符类型char、varchar、varchar2 的区别 

区别:
1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于CHAR (20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2 (20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。 
2.CHAR的效率比VARCHAR2的效率稍高。 
3.目前VARCHAR是VARCHAR2的同义词。工业标准的VARCHAR类型可以存储空字符串,但是oracle不这样做,尽管它保留以后这样做的权利。Oracle自己开发了一个数据类型VARCHAR2,这个类型不是一个标准的VARCHAR,它将在数据库中varchar列可以存储空字符串的特性改为存储NULL值。如果你想有向后兼容的能力,Oracle建议使用VARCHAR2而不是VARCHAR。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0dd302979
2011-10-31
知道答主
回答量:20
采纳率:0%
帮助的人:10.7万
展开全部
好像是4000 ,大于四千的话 会提示过长,如果不满足的话就用lob
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秒懂百科
2020-11-06 · TA获得超过5.9万个赞
知道大有可为答主
回答量:25.3万
采纳率:88%
帮助的人:1.2亿
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式