往ORA插入中文的时候报了这个错,ORA-12889:value to large for column (actual:54,maximum:40)
有2个原因造成的,
第一个是读取file的时候文字没有设置编码集,导致乱码,不乱码还是会出现这个错误。
第二个是OracleJDBC问题。一般直接用ps.setString()设置字符串数据时,Oracle的JDBC驱动会将中文转换为2字节或3字节,不固定的,因此经常会越界。如果改为ps.setCharacterStream()就是固定的每个中文两个字节。
//ps.setString(i, value); ps.setCharacterStream(index, new StringReader(value), value.length());