Oracle下Varchar2的最大值到底是多少?

hlhtyql 2002-04-11 05:30:43
本人作一个类似留言板功能的程序,设定留言板内容为Varchar2(4000),据说这已经是最大值了,可是问题怪就怪在:我通过一个Javascript函数侦测到内容长度为2308个字节,提交之后报错“数据大小超出此类型的最大值: 3387 ”,字节长度变为了3387个字节,而且插入不到数据库中。即使是3387个字节,还是小于4000呀。

这个问题困扰我很久了,之所以没有采用CLOB类型,是因为CLOB处理起来也比较麻烦。可以肯定的是我的这个判断函数没有任何问题。恳请碰到这方面问题的高手或者Oracle方面的高手指教。

多谢了!!
...全文
861 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyy_9715072 2002-04-14
  • 打赏
  • 举报
回复
中文的asic吗是可以这么找出来的吗,似乎不能根据字符的数字来判断该字符是
中文还是英文把,比如你的代码,我可以肯定,你的函数肯定都是跑到else
那里去了,呵呵,其实,只要你限定长度不能超过2000,肯定不会有问题的了
,何必和那么点空间较劲呢,要是要用长的话,blob或者long 不是挺好的吗,又没有长度限制
huyuefox 2002-04-14
  • 打赏
  • 举报
回复
我写留言版时用long型。处理方法和varchar2的方法相同
jiach 2002-04-14
  • 打赏
  • 举报
回复
1---4000
hlhtyql 2002-04-13
  • 打赏
  • 举报
回复
to:xmvigour(微电)
检查中文时算两个的,下面是判断的语句。


for (var i=0;i<field.value.length;i++)
{
var str = field.value;
var intCode=str.charCodeAt(i);

if (intCode>=0&&intCode<=128) {
totallength=totallength+1; //非中文单个字符长度加 1
}
else {
totallength=totallength+2; //中文字符长度则加 2
}
} //end for
Broadsea 2002-04-12
  • 打赏
  • 举报
回复
Oralce 的 CLOB 类型字段很好用!
rootwuyu 2002-04-12
  • 打赏
  • 举报
回复
写大容量文本不能setString的方式,而应该是用inputstream来写入。、
Andrawu 2002-04-12
  • 打赏
  • 举报
回复
可能是中文问题,在javascript检查的时候中文一个时长度为1,
在oracle中要占两个字节。
xmvigour 2002-04-12
  • 打赏
  • 举报
回复
Varchar2(4000)是最大值!

你用javascript检查的时候中文的算一个还是两个!
测试一下!!!!!!!!
zhu_liping 2002-04-11
  • 打赏
  • 举报
回复
用long就行
zhu_liping 2002-04-11
  • 打赏
  • 举报
回复
2000
wyy_9715072 2002-04-11
  • 打赏
  • 举报
回复
肯定是大于4000的,如果你觉得blob不好用的话,用long raw可能方便一些,
不过一张表只能有一个字段为long raw





81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧