根据测试,发现这是一个常识性的错误,即函数的varchar2类型的实参长度是不能超过4000的,不仅自定义的函数有这个限制,系统内置函数也有4000这个限制的.
写查询时要对查询条件做校验,对输入的查询条件做了校验。
校验之后方可以带入sql语句。对代码的健壮性要求,此问题属于后台逻辑校验范围。
contractCode带入查询条件前要做长度校验
if(contractCode.length()>30){
countErr ++ ;
errContractCode.append(contractCode+",");
continue;
}
FinanceContractInfo oldInfo = financeContractInfoDao
.findUniqueBy("contractCode", contractCode);