谁遇到过这样的警告:
WARN [http-8088-2] JDBCExceptionReporter.logWarnings(54) | SQL Warning: 17110, SQLState: null
WARN [http-8088-2] JDBCExceptionReporter.logWarnings(55) | Warning: 执行完毕, 但带有警告
程序能够正常执行,但是。如果一次录入多条数据就报错:超出打开游标的最大数
列为大侠有遇到过这种情况的么?怎么解决的?

解决方案 »

  1.   

    超出最大游标是因为你没有及时将Statement close掉。
      

  2.   

    “超出最大游标是因为你没有及时将Statement close掉。”
    请问在哪儿close。我都用的ssh框架。框架里有个CommonBaseDao,我们在service层里调用CommonBaseDao里的各种方法。
      

  3.   

    那你看你们封装的那个CommonBaseDao类里面用类似的close方法么
      

  4.   

    看看这对你或许有帮助http://blog.csdn.net/yukunzgp/archive/2010/07/24/5761349.aspx
      

  5.   

    public interface CommonBaseDao
    public class CommonBaseDaoHib extends HibernateDaoSupport implements CommonBaseDao
    没看见类似的方法。
      

  6.   

    你看我给你的那个链接,release_mode的配置在applicationContext.xml下。
      

  7.   

    <prop key="hibernate.connection.release_mode">after_transaction</prop>
    我是按这个方法配置的。7楼是这个意思吧。但是还是有警告。
    WARN [http-8088-2] JDBCExceptionReporter.logWarnings(54) | SQL Warning: 17110, SQLState: null
    WARN [http-8088-2] JDBCExceptionReporter.logWarnings(55) | Warning: 执行完毕, 但带有警告
    数据录入还没试呢。因为需要录很多条数据才能测出来。
    不过感谢1楼、4楼、5楼、7楼对我的帮助。
    也感谢下2楼。
      

  8.   

    那你看看你的order by 语句中的字段是不是有null值?
     
      

  9.   

    http://dbaspot.com/forums/oracle-server/429781-jdbcexceptionreporter-sql-warning-17110-sqlstate-null.html
      

  10.   

    或者你看看你的group by是不是有null值? 
      

  11.   

    这样的一条sql语句:
    select pm.mosquito_id as lid,
           pm.monitor_year || '-' || pm.monitor_month || '-' ||
           decode(pm.monitor_ten_days, '01', '上旬', '02', '下旬') as monitortime,
           decode(pm.biotope, '01', '人房', '02', '畜圈') biotopes,
           z.cnname as county,
           pm.report_unit,
           sum(decode(pmi.mosquito_name, '01', pmi.mosquito_num)) dskw,
           sum(decode(pmi.mosquito_name, '02', pmi.mosquito_num)) sdykw,
           sum(decode(pmi.mosquito_name, '03', pmi.mosquito_num)) zhaw,
           sum(decode(pmi.mosquito_name, '04', pmi.mosquito_num)) zjkw,
           sum(decode(pmi.mosquito_name, '05', pmi.mosquito_num)) sraw,
           sum(decode(pmi.mosquito_name, '06', pmi.mosquito_num)) bwyw,
           sum(decode(pmi.mosquito_name, '07', pmi.mosquito_num)) qt
      from pidera_mosquito pm
      left join pidera_mosquito_info pmi on (pm.mosquito_id =
                                            pmi.mosquito_reference_id)
      join zonecode z on z.zonecode = pm.zonecode
     where pm.del_state != '1'
     group by mosquito_id,
              pm.monitor_year || '-' || pm.monitor_month || '-' ||
              decode(pm.monitor_ten_days, '01', '上旬', '02', '下旬'),
              biotope,
              zonecode,
              cnname,
              report_unit
    建表语句:create table PIDERA_MOSQUITO
    (
      MOSQUITO_ID      VARCHAR2(40),
      ZONECODE         VARCHAR2(8),
      MONITOR_YEAR     VARCHAR2(40),
      MONITOR_MONTH    VARCHAR2(40),
      MONITOR_TEN_DAYS VARCHAR2(40),
      BIOTOPE          VARCHAR2(2),
      CATCH_LOCATION   VARCHAR2(80),
      ROOM_NUM         NUMBER(9),
      DENSITY_MOSQUITO NUMBER(5,2),
      MONITOR_LOCATION VARCHAR2(80),
      PRINCIPAL        VARCHAR2(40),
      REPORT_PEOPLE    VARCHAR2(40),
      REPORT_UNIT      VARCHAR2(40),
      REPORT_DATE      VARCHAR2(40),
      MODIFY_PEOPLE    VARCHAR2(40),
      MODIFY_DATE      VARCHAR2(40),
      DEL_PEOPLE       VARCHAR2(40),
      DEL_DATE         VARCHAR2(40),
      DEL_STATE        VARCHAR2(2),
      CATCH_MINUTES    NUMBER(8)
    )create table PIDERA_MOSQUITO_INFO
    (
      MOSQUITO_INFO_ID      VARCHAR2(40),
      MOSQUITO_REFERENCE_ID VARCHAR2(40),
      MOSQUITO_NAME         VARCHAR2(2),
      MOSQUITO_NUM          NUMBER(9)
    )上边儿的sql不是我写的,里边确实有group by语句。
      

  12.   

    那你看看你的group by 的那些字段是不是有null值。我也很想搞明白这个警告到底是什么原因。
      

  13.   

    估计就是这条sql的问题,但是如果有null值的话怎么办啊?
      

  14.   

    问题解决啦。
    sum(decode(pmi.mosquito_name, '01', pmi.mosquito_num)) dskw,
    在做sum之前先用coalesce函数处理一下空值就ok了。警告没了。
    谢谢liuyuhua0066 ^_^