错误信息如下:
- java.sql.SQLException: ORA-00907: 缺失右括号
 Query: select count(*) from (select f_jgid, f_jglicenceawarddate,f_jglicence,f_jglicencevaliddate,f_areaname,f_jgname,f_zsuoaddress,f_fddbiaorenname,f_jgfuzrenname,f_zjse,f_zsuophone,f_zsuopocode,f_approve,f_accepter,f_acceptdate from t_d_jgdjsqb where f_approve in('0','2','3')  order by f_acceptdate desc and f_jgname like '%3%' order by f_acceptdate desc) t  Parameters: [com.hptk.framework.database.SqlPrams@1304421]
java.sql.SQLException: ORA-00907: 缺失右括号
 Query: select count(*) from (select f_jgid, f_jglicenceawarddate,f_jglicence,f_jglicencevaliddate,f_areaname,f_jgname,f_zsuoaddress,f_fddbiaorenname,f_jgfuzrenname,f_zjse,f_zsuophone,f_zsuopocode,f_approve,f_accepter,f_acceptdate from t_d_jgdjsqb where f_approve in('0','2','3')  order by f_acceptdate desc and f_jgname like '%3%' order by f_acceptdate desc) t  Parameters: [com.hptk.framework.database.SqlPrams@1304421]
at org.apache.commons.dbutils.QueryRunner.rethrow(QueryRunner.java:359)这个是源代码;
Map outPrams = new HashMap();


//获取当前Session的Connection对象
java.sql.Connection con=session.connection();

StringBuffer sqlBr = new StringBuffer();

//设置默认的SQL语句
sqlBr.append("select f_jgid, f_jglicenceawarddate," +
"f_jglicence,f_jglicencevaliddate,f_areaname," +
"f_jgname,f_zsuoaddress,f_fddbiaorenname,f_jgfuzrenname," +
"f_zjse,f_zsuophone,f_zsuopocode,f_approve,f_accepter,f_acceptdate " +
"from t_d_jgdjsqb ");

 //获得登陆系统的用户对象
OnlineUserVO uservo = (OnlineUserVO) inPrams.get("onlineuser");
if(Untitled.isBlankOrNull(inPrams.get("f_jgid"))==false){
Log.debugLog("=============="+inPrams.get("f_jgid").toString());
sqlBr.append("where f_jgid = '" + inPrams.get("f_jgid") + "' and f_accepter='"+ uservo.getF_consumername()+"'");

}
if(inPrams.get("modulename").equals("申请登记审核")==true){

sqlBr.append("where f_approve in('0','2','3') ");
}else if(inPrams.get("modulename").equals("机构综合信息")==true){
sqlBr.append("where f_approve in('1') ");
}
/* order by f_acceptdate desc 放在最后了,否则在带条件查询时会报SQL语句不合法的错误. */

sqlBr.append(" order by f_acceptdate desc");
if(Untitled.isBlankOrNull(inPrams.get("fSearch"))==true){
 Log.debugLog("++++++ 机构信息查询 +++++++");
/* 没有查询条件 */
PaginBean paginBean = new PaginBean();
inPrams.put("sqlStr", sqlBr.toString());
inPrams.put("Class", JgDjZhGlMgerVO.class);

outPrams = paginBean.executePagin(inPrams, con);
List ls =(List)outPrams.get("viewList");
//Log.debugLog("outPrams: "+ls.get(0));

return outPrams;

}

/* 带条件的查询 */
if(Untitled.isBlankOrNull(inPrams.get("f_jgname"))==false){

/* 机构名称 */
sqlBr.append(" and f_jgname like '%" + inPrams.get("f_jgname") + "%'");
}
    
        if(Untitled.isBlankOrNull(inPrams.get("f_area"))==false){

         /* 地区 */
         sqlBr.append(" and f_areaname like '%" + inPrams.get("f_area") + "%'");
}
        
        if(Untitled.isBlankOrNull(inPrams.get("f_accepter"))==false){

         /* 受理人 */
         sqlBr.append(" and f_accepter like '%" + inPrams.get("f_accepter") + "%'");
}
        
        if(Untitled.isBlankOrNull(inPrams.get("f_approve"))==false){
    
         /* 审核状态 */
         sqlBr.append(" and f_approve like '%" + inPrams.get("f_approve") + "%'");
}
        
        
        sqlBr.append(" order by f_acceptdate desc");
        
        
        Log.debugLog("============ 机构信息查询 ===========");
PaginBean paginBean = new PaginBean();
inPrams.put("sqlStr", sqlBr.toString());
inPrams.put("Class", JgDjZhGlMgerVO.class);

outPrams = paginBean.executePagin(inPrams, con);
Log.debugLog("===== f_areaname ====="+inPrams);
String  countjdrens="";

return outPrams;

解决方案 »

  1.   


    select count(*)
      from (select f_jgid,
                   f_jglicenceawarddate,
                   f_jglicence,
                   f_jglicencevaliddate,
                   f_areaname,
                   f_jgname,
                   f_zsuoaddress,
                   f_fddbiaorenname,
                   f_jgfuzrenname,
                   f_zjse,
                   f_zsuophone,
                   f_zsuopocode,
                   f_approve,
                   f_accepter,
                   f_acceptdate
              from t_d_jgdjsqb
             where f_approve in ('0', '2', '3')
             order by f_acceptdate desc and f_jgname like '%3%'---这个地方的order by 是多余的吧。
             order by f_acceptdate desc)
      

  2.   

    select count(*) from (select f_jgid, f_jglicenceawarddate,f_jglicence,f_jglicencevaliddate,f_areaname,f_jgname,f_zsuoaddress,f_fddbiaorenname,f_jgfuzrenname,f_zjse,f_zsuophone,f_zsuopocode,f_approve,f_accepter,f_acceptdate 
    from t_d_jgdjsqb 
    where f_approve in('0','2','3') 
    --order by f_acceptdate desc 这个是多余的吧,order by要放到语句的最后面
    and f_jgname like '%3%' 
    order by f_acceptdate desc
      

  3.   


    --多了order by f_acceptdate desc 
    select count(*) from (select f_jgid, f_jglicenceawarddate,f_jglicence,f_jglicencevaliddate,f_areaname,f_jgname,f_zsuoaddress,f_fddbiaorenname,f_jgfuzrenname,f_zjse,f_zsuophone,f_zsuopocode,f_approve,f_accepter,f_acceptdate from t_d_jgdjsqb where f_approve in('0','2','3') order by f_acceptdate desc and f_jgname like '%3%' order by f_acceptdate desc) t
    select count(*) from 
    (
    selectf_jgid,f_jglicenceawarddate,f_jglicence,f_jglicencevaliddate,
    f_areaname,f_jgname,f_zsuoaddress,f_fddbiaorenname,f_jgfuzrenname,
    f_zjse,f_zsuophone,f_zsuopocode,f_approve,f_accepter,f_acceptdate 
    from t_d_jgdjsqb 
    where f_approve in('0','2','3') and f_jgname like '%3%' 
    order by f_acceptdate desc) t