今天在执行一条UPDATE语句时报了这个错误.下面是语句
UPDATE CRM_YXBDXX SET YJDZBJ=0 WHERE BDHM IN(‘AAKAKA’,’DKDKD’,……..)
后面发现主要是两个地方出了问题:
1.写入的响应头的数据超出缓冲区限制的大小
解决方案:修改TOMCATE中的conf文件夹下的server.xml文件,具体修改如下:
<Connector URIEncoding="UTF-8" port="8090" protocol="org.apache.coyote.http11.Http11NioProtocol"
useBodyEncodingForURI="false" enableLookups="false" connectionTimeout="20000"
redirectPort="8443" maxHttpHeaderSize="500000"/>
其中主要修改的是maxHttpHeaderSize,把这个值设成你想要的大小
2.SQL进行IN查询时,IN中的数据量不能超过1000条,如果你没有超过1000条,请忽略,如果超过,在改完上TOMCAT配置后还会产生:java.sql.SQLException: ORA-01795: 列表中的最大表达式数为 1000的报错
解决方案:赋值时注意IN中的数据量不要超过1000条,或者使用OR
如:UPDATE CRM_YXBDXX SET YJDZBJ=0 WHERE BDHM IN(‘AAKAKA’,’DKDKD’,……..) OR BDHM IN(‘AAKAKA’,’DKDKD’,……..)