public JDBCResultSet getOrderInfo(String sdate,String edate,String o_order_type,String o_assign_flag,String o_process_flag,String o_time_flag)
    {
         StringBuffer error=new StringBuffer();
               
         String   sqlStr = "select  a.Order_id,a.Cust_name,a.Brh_id,a.Order_date,decode(a.Order_type,'1','信用卡','2','理财业务','3','信贷业务') ot,"
                  + "decode(a.Assign_flag,'0','未分派','1','已分派','2','已办结') af,b.V_USER_NM,"
                  + "a.Assign_date,a.Process_deadline,a.Process_request,decode(a.Process_flag,'0','未处理','1','洽谈中','2','已促成','3','未促成') pf,a.Process_dtl " 
                  + " from t_busi_order_dtl a ,sys_user b"
                  //+ " where a.cust_id=b.cust_id and a.txn_type<>5"
                  + " where a.Assign_opr_id=b.V_USER_ID";
        if(!sdate.equals(""))
                sqlStr = sqlStr + " and a.Order_date>='"+sdate+"'";
        if(!edate.equals(""))
                sqlStr = sqlStr + " and a.Order_date<='"+edate+"'";
                 
        if(!o_order_type.equals(""))
                sqlStr = sqlStr + " and a.Order_type='"+o_order_type+"'";
        if(!o_assign_flag.equals(""))
                sqlStr = sqlStr + " and a.Assign.flag='"+o_assign_flag+"'";
        if(!o_process_flag.equals(""))
                sqlStr = sqlStr + " and a.Process_flag='"+o_process_flag+"'";
        if(!o_time_flag.equals(""))
               { if(o_time_flag.equals("0"))
               sqlStr = sqlStr + " and a.Process.deadline < getDateToStr(new java.util.Date()) ";
               else if(o_time_flag.equals("1"))
               sqlStr = sqlStr + " and a.Process.deadline > getDateToStr(new java.util.Date()) ";
               }
        sqlStr = sqlStr + " order by  a.Order_date,a.Process_deadline,a.Order_type" ;
          JDBCResultSet rs = RunQry(sqlStr, error);
        if (!error.toString().equals(""))
        {
            System.out.println(error.toString());
            return null;
        }
        return rs; 
    }各位大大 帮我看下,我崩溃了  哪个右括号缺失了?

解决方案 »

  1.   

    and a.Process.deadline < getDateToStr(new java.util.Date()) 这句,可以直接写到sql里面的?
      

  2.   

     { if(o_time_flag.equals("0")) 
                  sqlStr = sqlStr + " and a.Process.deadline < getDateToStr(new java.util.Date()) "; 
                  else if(o_time_flag.equals("1")) 
                  sqlStr = sqlStr + " and a.Process.deadline > getDateToStr(new java.util.Date()) "; 
                  } 
    你看看这两个sqlstr=...有错误吧
    吧java的语法写到sql语句里去了,改下
      

  3.   

    String sqlStr1 = "insert into t_important_log values(TXNLOGREC.nextval,'"+GlobalFun.getDateToStr(new java.util.Date())
                            +"','修改客户姓名','"+bd.getCustid()+"','"+mapid+"','"+user.getUserName()+"','"+sOprMemo+"','"+GlobalFun.getDateTimeToStr(new java.util.Date())+"')";这个是我模仿别人的,他这样可以?
      

  4.   

    你看清楚,String sqlStr1 = "insert into t_important_log values(TXNLOGREC.nextval,'"+GlobalFun.getDateToStr(new java.util.Date()) 
                            +"','修改客户姓名','"+bd.getCustid()+"','"+mapid+"','"+user.getUserName()+"','"+sOprMemo+"','"+GlobalFun.getDateTimeToStr(new java.util.Date())+"')"; 
    红色的表示sql字符串,绿色的是java的变量和函数部分
    sql语句用双引号括住了,在执行之前只是一个字符串
    而你上面的语句把java的语句写到双引号里边,java的语法让oracle来认。自然会报错