problème appel à une fonction pl/sql
Bonjour tout le monde. j'ai un petit problème lorsque je tente d'appler une fonction pl sql qui recoit un objet.
Mon collègue as fait du code un peu avant de partir en vacance et je suis bloquer là où il était rendu.
Voilà le java :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
protected String recupQqchose(TestImpl oCarr,String psTri,String psDesc,int piPage,int piMaxPage) throws SQLException,
IOException,
ClassNotFoundException {
String sResult = null;
CallableStatement oAppelProcedure = moJCon.prepareCall("{ call ? := PKG_QQC.recupererTest(?,?,?,?,?,?) }");
Map map = moJCon.getTypeMap();
map.put("CARR_RECHERCHE",Class.forName("com.la.classe.serialiser"));
oAppelProcedure.registerOutParameter(1,Types.INTEGER);
oAppelProcedure.setObject(2,oCarr);
oAppelProcedure.setString(3,psTri);
oAppelProcedure.setString(4,psDesc);
oAppelProcedure.setInt(5,piPage);
oAppelProcedure.setInt(6,piMaxPage);
oAppelProcedure.registerOutParameter(7,Types.CLOB);
oAppelProcedure.execute();
if(oAppelProcedure.getInt(1) >= 0){
if(oAppelProcedure.getClob(7) != null)
sResult = IOUtils.toString(oAppelProcedure.getClob(7).getCharacterStream());
}
if(sResult==null){
}
return sResult;
} |
CARR_RECHERCHE ---> Type pl/sql qui correspond à mon objet de la classe TestImpl
com.la.classe.serialiser --> classe qui extend de la classe de mon objet TestImpl et qui est Serializable
paramètre du PL/SQL :
(
p_recherche IN carr_recherche,
p_tri IN VARCHAR2,
p_desc IN VARCHAR2,
p_page IN INTEGER,
p_maxpage IN INTEGER,
p_xml OUT CLOB
)
RETURN NUMBER
AS
Et ça me dit toujours une erreur du genre
07/08/06 15:54:43 java.sql.SQLException: ORA-06550: Ligne 1, colonne 13 :
PLS-00306: numéro ou types d'arguments erronés dans appel à 'recupererTest'
ORA-06550: Ligne 1, colonne 7 :
PL/SQL: Statement ignored
Quelqu'un a une idée pourquoi çca fonctionne pas?? Tout mes autres call a la BD sans objet fonctionne très bien..
Merci
Bye