写了一个函数,当sql参数的内容过长时,在查询分析器里可以正常执行,但是在程序里就报错,提示字符串过长被截断,我不想用存储过程,请问如何解决? 
public ResultSet executeQuery(String userid, String userip, String sql){
   try{
       Statement st = conn.createStatement();
       ResultSet rs = st.executeQuery(sql);
       return rs;
      }
   catch(SQLException e){
        ........
          }
       return null;

  

解决方案 »

  1.   

    同意healer_kx(甘草 4月7日组织聚会,北京的饼子可以联系我和我师傅)  的說
      

  2.   

    SQL语句一次发送过去一般是用长度限制的,DB2好像是64KB
    举个例子select * from table where id in(111, 222, 333, 444, ......)
    如果太长了, 这跟攻击代码有什么区别:) 
    想办法有点镶嵌查询之类的减少你的SQL语句吧
      

  3.   

    你看看能不能分成多个sql语句来执行,比方说将第一次执行的结果存成临时表之类的