5.7.1. Oracle中clob字段存储问题
版本号:4.5
错误现象: 填报表,clob字段提交500以上汉字不能够保存。
后台错误信息: org.apache.tomcat.util.http.Parameters processParameters
错误原因分析: 少于500汉字可以正常提交,说明报表做的没有错。问题可能处在报表引擎本身,或数据库。我们知道在Oracle中,LOB类型分为BLOB和CLOB两种:BLOB即二进制大型对象(Binary Large Object),适用于存贮非文本的字节流数据(如程序、图象、影音等)。而CLOB,即字符型大型对象(Character Large Object),则与字符集相关,适于存贮文本型的数据(如历史档案、大部头著作等)。既CLOB字段的本意不是让我们存储字符串的。
解决方法:我们在文本中写入500以上汉字,用上载文件的方式,填报到数据库的CLOB字段中,是可行的。
建议:存储文本型的数据,应以文件流的方式,存储到CLOB字段中。而字符存储应该用varchar2类型。