Oracle中Clob类型处理解析:ORA-01461:仅可以插入LONG列的LONG值赋值
今天设计了一张表存储请求和响应报文的表,针对这两个内容有两个字段,指定的类型为CLOB数据类型。然后插入数据库时,报错:Oracle中Clob类型处理解析:ORA-01461:仅可以插入LONG列的LONG值赋值
;
原因分析
之所以会出现长度大于4000时报错,是因为Oracle中有SQL语句中两个单引号之间的字符数不能大于4000的限制。当数据的长度大于4000个字节时就会报错。主要有下列的情况。
-
1、插入到字符串长度大于4000字节。
-
2、插入到表中的记录的某个字段数据的实际长度大于2000个字节(如果是UTF-8,则是1333个字节);
-
3.插入的记录中有两个或两个以上长度大于2000字节的字符串。
解决方法
1.缩短存入的数据长度。一般情况下,显然很多情况下应该是不行的,会跟需求冲突。
2.修改数据库字段定义类型为Blob。