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 :
CARR_RECHERCHE ---> Type pl/sql qui correspond à mon objet de la classe TestImpl
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
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
Partager