今天在做sql拼接的时候,一直报错:sql序列索引错误

第一反应就是:sql中有无效的列名        将sql 运行在PL/SQL上排除此错误

后经过断点后发现报错原因:

 

if(location!=null && !"".equals(location)){
				sql.append("and b.location like\'%?%\'");
			}

  这句赋值失败,系统识别不到"?"

 

修改成:

if(location!=null && !"".equals(location)){
				sql.append("and b.location like'%'||?||'%'");
			}

  则成功。

 

总结:以后做模糊查询时候 有%或者其他符号时候,?用sql的拼接符(||)去拼接