PLSQL ストアド プロシージャを呼び出そうとすると、回避できないこのエラーが発生します。ストアド プロシージャは 5 つのパラメーターを取り、カーソルとエラー メッセージを返します。すべてのパラメータは varchar2 で、エラー メッセージは varchar2 です。
メソッド:
List fetchEmployees(){
List employeeList = []
Sql sql = new groovy.sql.Sql(dataSource)
sql.call("BEGIN package.p_get_employees(?,?,?,?,?,?,?); END;",
[code1,code2,code3,code4,code5,Sql.resultSet(OracleTypes.CURSOR),Sql.resultSet(OracleTypes.VARCHAR)])
{cursorResults ->
while(cursorResults.next()){
def person = new Person()
person.setEmail(cursorResults.getAt(1))
person.setNetid(cursorResults.getAt(0))
employeeList.add(person)
}
}
return employeeList
}
そして、これを実行しようとすると、次のエラーが発生します。
Caused by: java.sql.SQLException: org.apache.commons.dbcp.DelegatingCallableStatement with address: "oracle.jdbc.driver.T4CCallableStatement@e76514" is closed.
...