“Curseur est fermé” erreur lorsque vous tentez d'exécuter un Oracle SP à l'aide de JDBC
L'Oracle version de notre base de données 10g.
La procédure stockée permet de sélectionner tous les éléments dans un tableau et renvoie une référence de type de CURSEUR comme suit:
créer ou remplacer
PROCEDURE S_S_TEST(
test_OUT OUT OAS_TYPES.REFCURSOR
)
AS
BEGIN
OPEN test_OUT FOR
SELECT *
FROM table_p;
CLOSE test_OUT;
END S_S_TEST;
Lorsque cette procédure stockée est exécutée en JAVA, l'exception suivante est obtenue:
java.sql.SQLException: Cursor is closed. at oracle.jdbc.driver.T4CResultSetAccessor.getCursor(T4CResultSetAccessor.java:323) at oracle.jdbc.driver.ResultSetAccessor.getObject(ResultSetAccessor.java:85) at oracle.jdbc.driver.OracleCallableStatement.getObject(OracleCallableStatement.java:1401) at com.ibm.ws.rsadapter.jdbc.WSJdbcCallableStatement.getObject(WSJdbcCallableStatement.java:443)
J'essaie de comprendre quelle est l'erreur et comment il pourrait être résolu. Quelqu'un pourrait-il svp m'aider?
Merci!
Vous devez vous connecter pour publier un commentaire.
Le client de l'appel de la procédure stockée est responsable de la fermeture du curseur. Veuillez supprimer le code:
FERMER test_OUT;
Le client ferme. Dans ce cas, le client JDBC programme qui appelle la procédure stockée.