求救:java.sql.SQLException: 关闭的语句

时间:2022-07-10 22:50:42
2008-11-28 11:21:26,359 WARN  [HouseKeeper] proxool.HouseKeeper (HouseKeeper.jav
a:149) - #0001 was active for 81125 milliseconds and has been removed automatica
ly. The Thread responsible was named 'DefaultQuartzScheduler_Worker-1', and the
last SQL it performed is ''.
 2008-11-28 11:21:26,359 WARN  [HouseKeeper] proxool.HouseKeeper (HouseKeeper.ja
va:149) - #0002 was active for 80844 milliseconds and has been removed automatic
aly. The Thread responsible was named 'DefaultQuartzScheduler_Worker-1', and the
 last SQL it performed is ''.
 2008-11-28 11:21:26,359 WARN  [HouseKeeper] proxool.HouseKeeper (HouseKeeper.ja
va:149) - #0003 was active for 82625 milliseconds and has been removed automatic
aly. The Thread responsible was named 'DefaultQuartzScheduler_Worker-1', and the
 last SQL it performed is ''.
 2008-11-28 11:22:06,375 WARN  [HouseKeeper] proxool.HouseKeeper (HouseKeeper.ja
va:149) - #0004 was active for 119782 milliseconds and has been removed automati
caly. The Thread responsible was named 'DefaultQuartzScheduler_Worker-1', and th
e last SQL it performed is ''.
 2008-11-28 11:22:06,375 WARN  [HouseKeeper] proxool.HouseKeeper (HouseKeeper.ja
va:149) - #0005 was active for 119172 milliseconds and has been removed automati
caly. The Thread responsible was named 'DefaultQuartzScheduler_Worker-1', and th
e last SQL it performed is 'SELECT AGENTCODE,WORKDATE,AMOUNT,NOTE3,LEVEL1_BRANCH
_ID,BOOT_STARTTIME,BOOT_ENDTIME FROM DISPOSAL,INTERBUSINESS,NODE WHERE DISPOSAL.
TERMINALID=INTERBUSINESS.NOTE3 AND NODE.NODE_ID=DISPOSAL.NODE_ID; '.
 java.sql.SQLException: 关闭的语句
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
        at oracle.jdbc.driver.OracleStatement.ensureOpen(OracleStatement.java:63
90)
        at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:
558)
        at sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.logicalcobwebs.proxool.ProxyStatement.invoke(ProxyStatement.java:
100)
        at org.logicalcobwebs.proxool.ProxyStatement.intercept(ProxyStatement.ja
va:57)
        at oracle.jdbc.internal.OracleStatement$$EnhancerByProxool$$5dc31bf4.exe
cuteQuery(<generated>)
        at com.fct.bat.InitTable.initTrace_history_all(InitTable.java:3754)
        at com.fct.bat.InitTable.execute(InitTable.java:55)
        at com.fct.bat.InitTableProxy.execute(InitTableProxy.java:21)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.j
ava:529)
java.sql.SQLException: 关闭的语句
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
2008-11-28 11:23:56,406 WARN  [HouseKeeper] proxool.HouseKeeper (HouseKeeper.jav
a:149) - #0006 was active for 109969 milliseconds and has been removed automatic
aly. The Thread responsible was named 'DefaultQuartzScheduler_Worker-1', and the
 last SQL it performed is 'SELECT AGENTCODE,WORKDATE,AMOUNT,NOTE3,LEVEL1_BRANCH_
ID,BOOT_STARTTIME,BOOT_ENDTIME FROM DISPOSAL,INTERBUSINESS,NODE WHERE DISPOSAL.T
ERMINALID=INTERBUSINESS.NOTE3 AND NODE.NODE_ID=DISPOSAL.NODE_ID; '.
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
        at oracle.jdbc.driver.OracleStatement.ensureOpen(OracleStatement.java:63
90)
        at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:
558)
        at sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.logicalcobwebs.proxool.ProxyStatement.invoke(ProxyStatement.java:
100)
        at org.logicalcobwebs.proxool.ProxyStatement.intercept(ProxyStatement.ja
va:57)
        at oracle.jdbc.internal.OracleStatement$$EnhancerByProxool$$5dc31bf4.exe
cuteQuery(<generated>)
        at com.fct.bat.InitTable.initTrace_history_s(InitTable.java:5050)
        at com.fct.bat.InitTable.execute(InitTable.java:56)
        at com.fct.bat.InitTableProxy.execute(InitTableProxy.java:21)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.j
ava:529)

4 个解决方案

#1


不知道是什么问题,向高手请教

#2


sql语句执行出错吧!! 
'SELECT AGENTCODE,WORKDATE,AMOUNT,NOTE3,LEVEL1_BRANCH 
_ID,BOOT_STARTTIME,BOOT_ENDTIME FROM DISPOSAL,INTERBUSINESS,NODE WHERE DISPOSAL. 
TERMINALID=INTERBUSINESS.NOTE3 AND NODE.NODE_ID=DISPOSAL.NODE_ID;'

LZ是不是在语句最后多加了个 ";" 符号 ??
改成
'SELECT AGENTCODE,WORKDATE,AMOUNT,NOTE3,LEVEL1_BRANCH 
_ID,BOOT_STARTTIME,BOOT_ENDTIME FROM DISPOSAL,INTERBUSINESS,NODE WHERE DISPOSAL. 
TERMINALID=INTERBUSINESS.NOTE3 AND NODE.NODE_ID=DISPOSAL.NODE_ID'
试试

#3


HouseKeeper.java类中的sql语句出错了
你检查一下,你的sql语句
'SELECT AGENTCODE,WORKDATE,AMOUNT,NOTE3,LEVEL1_BRANCH 
_ID,BOOT_STARTTIME,BOOT_ENDTIME FROM DISPOSAL,INTERBUSINESS,NODE WHERE DISPOSAL. 
TERMINALID=INTERBUSINESS.NOTE3 AND NODE.NODE_ID=DISPOSAL.NODE_ID;' 
是没有分号的,去叼掉分号试试

记住:在java的操作数据库sql语句中是不需要加分号的,还有就是字段名要使用单引号来控制格式的

#4


谢谢了,已解决

#1


不知道是什么问题,向高手请教

#2


sql语句执行出错吧!! 
'SELECT AGENTCODE,WORKDATE,AMOUNT,NOTE3,LEVEL1_BRANCH 
_ID,BOOT_STARTTIME,BOOT_ENDTIME FROM DISPOSAL,INTERBUSINESS,NODE WHERE DISPOSAL. 
TERMINALID=INTERBUSINESS.NOTE3 AND NODE.NODE_ID=DISPOSAL.NODE_ID;'

LZ是不是在语句最后多加了个 ";" 符号 ??
改成
'SELECT AGENTCODE,WORKDATE,AMOUNT,NOTE3,LEVEL1_BRANCH 
_ID,BOOT_STARTTIME,BOOT_ENDTIME FROM DISPOSAL,INTERBUSINESS,NODE WHERE DISPOSAL. 
TERMINALID=INTERBUSINESS.NOTE3 AND NODE.NODE_ID=DISPOSAL.NODE_ID'
试试

#3


HouseKeeper.java类中的sql语句出错了
你检查一下,你的sql语句
'SELECT AGENTCODE,WORKDATE,AMOUNT,NOTE3,LEVEL1_BRANCH 
_ID,BOOT_STARTTIME,BOOT_ENDTIME FROM DISPOSAL,INTERBUSINESS,NODE WHERE DISPOSAL. 
TERMINALID=INTERBUSINESS.NOTE3 AND NODE.NODE_ID=DISPOSAL.NODE_ID;' 
是没有分号的,去叼掉分号试试

记住:在java的操作数据库sql语句中是不需要加分号的,还有就是字段名要使用单引号来控制格式的

#4


谢谢了,已解决