Objectif : Dans une méthode JAVA, appeler une procédure stockée qui retourne un REF CURSOR.
Procédure stockée :
La procédure stockée SELECT PROJET retourne un curseur :
PROCEDURE SELECT_PROJETS
(LISTE_PROJETS OUT CURSEUR_PROJETS);
Télécharger le code de la procédure stockée : Téléchargement Projets.pkb Téléchargement Projets.pks
Méthode JAVA :
La méthode java qui lit les données à partir du curseur :
public List listeProjets() {
try
{
DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
conn = DriverManager.getConnection
("jdbc:oracle:thin:@localhost:1521:orcl", "NFP121", "nfp121");
CallableStatement SelectProjects = conn.prepareCall("{call PKG_PROJET.SELECT_PROJETS(?)}");
SelectProjects.setFetchSize(100);
SelectProjects.registerOutParameter(1,oracle.jdbc.driver.OracleTypes.CURSOR);
SelectProjects.executeQuery();
ResultSet rs = (ResultSet)SelectProjects.getObject(1);
while (rs.next())
{
ListProjets.add(rs.getString("CODE"));
}
rs.close();
SelectProjects.close();
return ListProjets;
}
catch(SQLException sqle){
System.out.println(sqle.toString());
}
finally{
return ListProjets;
}
}
Commentaires