Hibernate version: 3.1
Je ne parviens pas à utiliser une procédure stockée DB2 (AS400).
Par contre ça marche très bien avec Oracle.
Ma procédure DB2 AS400 :
CREATE PROCEDURE PJ/PDA_TEST1(OUT LABEL CHARACTER,IN CEAN
CHARACTER) RESULT SETS 1 LANGUAGE SQL BEGIN DECLARE cursor1 CURSOR
WITH RETURN FOR SELECT LARTar FROM b33stfc/ftartp00 WHERE
cidiar='001' and nartar=cean; SELECT LARTar INTO LABEL FROM
b33stfc/ftartp00 WHERE cidiar='001' and nartar=cean; OPEN cursor1;
END
Mapping :
<sql-query name="getValueSeuleFromCode" callable="true">
<return-scalar column="value" />
<return-scalar column="cod" />
{ ? = call PJ/PDA_TEST1(?,?) }
</sql-query>
Cas d'utilisation :
Session session = HibernateUtil.getSession();
Transaction tx = null;
try {
tx= session.beginTransaction();
Query q = session.getNamedQuery("getValueSeuleFromCode");
q.setString(0, "7610004567015");
List l = q.list();
Object[] tabObj = (Object[]) l.get(0);
System.out.println(l.size() + "RESULTAT = " + tabObj[0]);
tx.commit();
} catch (Exception ex) {
ex.printStackTrace();
if (tx != null) tx.rollback();
} finally {
session.close();
}
Erreur :
Hibernate: { ? = call PJ/PDA_TEST1(?,?) }
29 sept. 2006 15:08:42 org.hibernate.util.JDBCExceptionReporter
WARNING: SQL Error: -99999, SQLState: HY105
29 sept. 2006 15:08:42 org.hibernate.util.JDBCExceptionReporter
SEVERE: Parameter type not valid.
Je suis au bord de la dépression... Au secours !
|