oracle的varchar2(4000)通过jdbc的thin驱动连接为什么只可以存666个汉字 .

 根据oracle的文档,thin的jdbc驱动,会根据字符集合决定varchar2的长度,如果不是ascii或者拉丁字符集合,长度的限制就是2000,因为它认为其他字符集都需要两个字节来存储,但是通过jdbc的setString方法时候,驱动会把java的utf-16转换为utf-8,这样英文由两个字节变成一个字节,中文由两个字节变为3个字节,所以2000/3大概就是666个中文字符了。

你可能感兴趣的:(java,oracle,jdbc,存储,文档)