为什么我设置varchar2(4000),插入700多个汉字时就说超过长度! varchar2能设置到4000吗? CLOB才4000长度 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 还有, 不同字符集, 中文占用字节数是不同的.在GBK里中文占2个字节, 在UTF-8和UTF16AL32里, 中文占3个字节 700多个字是没有问题的,顶多是LENGTHB 就是1600,还远远没有达到4000呢 不知道楼主用的什么语言和驱动根据oracle的文档,thin的jdbc驱动,会根据字符集合决定varchar2的长度,如果不是ascii或者拉丁字符集合,长度的限制就是2000,因为它认为其他字符集都需要两个字节来存储,但是通过jdbc的setString方法时候,驱动会把java的utf-16转换为utf-8,这样英文由两个字节变成一个字节,中文由两个字节变为3个字节,所以2000/3大概就是666个中文字符了。 wully(吃木头长大) 说得真好 wully(吃木头长大) 正解 oracle行级锁问题 oracle 10g 定时备份 ORA-01756:括号内的字符串没有正确结束 pl/sql连接时:无法解析指定的连接标识符 游标怎么执行动态SQL呀 求Oracle存储过程替代 start with connect by的方法(100俸上) 问一个较为复杂的sql查询问题: 100 分关于通讯通道错误!! oracle 的古怪问题 连接表 刻录linux版的oracle9i 关于分区表的索引?
根据oracle的文档,thin的jdbc驱动,会根据字符集合决定varchar2的长度,如果不是ascii或者拉丁字符集合,长度的限制就是2000,因为它认为其他字符集都需要两个字节来存储,但是通过jdbc的setString方法时候,驱动会把java的utf-16转换为utf-8,这样英文由两个字节变成一个字节,中文由两个字节变为3个字节,所以2000/3大概就是666个中文字符了。