【发布时间】:2017-11-29 13:33:17
【问题描述】:
我想在过程中使用游标作为输出参数,但是当我在 java 中执行时,游标返回 null
这是我的程序
CREATE OR REPLACE PROCEDURE OBTENER_ESTADO (RESULTADO OUT SYS_REFCURSOR)
AS
BEGIN
CURSOR RESULTADO
IS SELECT ID, NOMBRE FROM ESTADOS;
CLOSE RESULTADO;
EXCEPTION
WHEN OTHERS THEN
NULL;
END OBTENER_ESTADO;
这是我的java代码
public List<EstadosMexico> procedimientoEstados(Connection conn){
List<EstadosMexico> le = null;
try{
CallableStatement cs = conn.prepareCall("{ CALL OBTENER_ESTADO(?)}");
cs.registerOutParameter(1, OracleTypes.CURSOR);
cs.executeUpdate();
ResultSet cursor = (ResultSet) cs.getObject(1);
cs.close();
le = new ArrayList();
while(cursor.next()) {
le.add(new EstadosMexico(cursor.getString(1), cursor.getInt(2)));
}
cursor.close();
} catch(SQLException ex) {
System.out.println(ex.getSQLState() + " " + ex.getMessage());
}
return le;
}
【问题讨论】:
标签: java stored-procedures plsql cursor