2013-05-10 129 views
0

我之前成功調用過存儲過程,但沒有輸出參數,現在有了這樣的新過程。Grails調用帶輸出參數的存儲過程

var returntype number; 
begin 
IZMST_PKG_SOLO_GENERATE_SQL.pro_get_row_cnt(1,181,:returntype); 
end; 

當我把這個過程遇到老鄉錯誤消息: 錯誤

org.apache.commons.dbcp.DelegatingCallableStatement with address: 
    "[email protected]" is 
    closed.. Stacktrace follows: java.sql.SQLException: 
    org.apache.commons.dbcp.DelegatingCallableStatement with address: 
    "[email protected]" is 
    closed.  at 
    org.apache.commons.dbcp.DelegatingStatement.checkOpen(DelegatingStatement.java:137) 
     at 
org.apache.commons.dbcp.DelegatingCallableStatement.getObject(DelegatingCallableStatement.java:144) 
    at 
com.pg.izoom.de.ExtractManagementController$$EO5PWcUR.addExtract(ExtractManagementController.groovy:74) 
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:662) 

這樣的代碼:

Connection conn = dataSource.getConnection() 
      Sql sql = new Sql(conn) 
      //int test = sql.call("",) 
      sql.call'BEGIN IZMST_PKG_SOLO_GENERATE_SQL.pro_get_row_cnt(?,?,?); END;',[1L,qryId,Sql.resultSet(OracleTypes.NUMBER)],{dwells-> 
       println dwells 
      } 

誰能熟悉這個幫助我嗎?提前致謝。

+0

您需要添加過程聲明 - 從您發佈什麼樣的參數'returntype'是不明確的。另外,你可以修改程序來返回值嗎? – haki 2013-05-10 06:53:17

回答

0

如果我明白了,您的退貨類型爲number,那麼您可以直接使用Sql.NUMERIC

sql.call '{call IZMST_PKG_SOLO_GENERATE_SQL.pro_get_row_cnt(?,?,?) }',[1L, qryId, Sql.NUMERIC],{ dwells -> 
    println dwells 
} 
相關問題