delete本身是没有问题的。建议改用 < >来划定要删除的范围,并且 *** 作主键数据来删除。希望对你有帮助。
oracle中如果查询结果集超过1000行会报以下错误:系统报出一SQL异常,内容如下:
java.sql.SQLException: ORA-01795: maximum number of expressions in a list is 1000
解决办法啊:
StringBuffer sb = new StringBuffer()
int inNum = 1//已拼装IN条件数量
for(int i=0i<custNOs.lengthi++) {
if(StringUtil.isEmpty(custNOs[i])) continue
//这里不要犯低级错误而写成:if(i == custNOs.length)
if(i == (custNOs.length-1))
sb.append("'" + custNOs[i] + "'") //SQL拼装,最后一条不加“,”。
else if(inNum==1000 &&i>0) {
sb.append("'" + custNOs[i] + "' ) OR CUST_NO IN ( ") //解决ORA-01795问题
inNum = 1
}
else {
sb.append("'" + custNOs[i] + "', ")
inNum++
}
}
String selectSQL = "SELECT * FROM CUSTOMER T WHERE T.CUST_NO IN ( " + sb.toString() + " )"
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)