Je n'ai pas fait ça avec ARRAY
mais ça devrait marcher. Vous devez d'abord vous inscrire out
paramètre de votre fonction. Donc ça peut être comme ça.
private final String PRODECURE_NAME = "{? = call <ProcedureName>(?,?,?)}";
Connection con = null;
CallableStatement cs = null;
try {
con = DAOFactory.getDatabaseConnection();
cs = con.prepareCall(PRODECURE_NAME);
cs.registerOutParameter(1, java.sql.Types.ARRAY);
cs.setYourType(2, <yourData>);
cs.setYourType(3, <yourData>);
cs.setYourType(4, <yourData>);
cs.execute();
Array arr = cs.getArray(1);
if (arr != null) {
String[] data = (String[]) arr.getArray();
}
}
catch (SQLException ex) {
Logger.getLogger(OracleLiekDAO.class.getName()).log(Level.SEVERE, null, ex);
try {
con.rollback();
}
}
finally {
if (con != null) {
try {
con.close();
}
catch (SQLException ex) {
Logger.getLogger(OracleLiekDAO.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Essayez cet homme et dites-moi ensuite si c'est le cas ou non.
MODIF :
Ces chars ? représente un paramètre que vous allez définir (il est nommé paramétré). Donc ceci :
cs.setYourType(2, <yourData>);
cs.setYourType(3, <yourData>);
cs.setYourType(4, <yourData>);
signifie que vous définissez vos trois paramètres (?), Le premier paramètre de la méthode est l'index de colonne et le second sont vos données de votre type spécifique.
MODIFICATION 2 :
Désolé, j'ai écrit une mauvaise solution, déjà mise à jour, alors vérifiez le code maintenant et essayez-le.