Recuperer un ROWTYPE

Résolu
OliV_25 Messages postés 29 Date d'inscription mercredi 23 juin 2004 Statut Membre Dernière intervention 16 août 2006 - 10 août 2006 à 16:28
OliV_25 Messages postés 29 Date d'inscription mercredi 23 juin 2004 Statut Membre Dernière intervention 16 août 2006 - 16 août 2006 à 14:52
bonjour tlm

voila j'ai une base oracle avec procedure/fonctions en PL/SQL, notamment une qui me retourne un %ROWTYPE

en java, j'appel cette procedure, mais je c pas comment récuperer cette variable ( en fait je dois donner dans mon prog java le type de ce ke retourne la fonction, et ROWTYPE je c pas comment on le définit )

si qqn peut m'aider ...

a+ tlm
oliv

3 réponses

OliV_25 Messages postés 29 Date d'inscription mercredi 23 juin 2004 Statut Membre Dernière intervention 16 août 2006
16 août 2006 à 14:52
bon alors j'ai trouver une solution a mon probleme, je c pas si c la meilleur mais normalement ca marche

en fait j'ai du modifier ma procédure PL/SQL pour qu'elle retourne un REF CURSOR et non un ROWTYPE, ca oblige a créer un RECORD et un REF CURSOR en pl/sql donc c plus long, mais j'ai pas trouvé mieux.

apres dans le java ya juste a dire ke le "registerOutParameter" est du type "OracleTypes.CURSOR"

voila
a+ les gens
3
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
10 août 2006 à 16:39
t as essayer de mettre tt simplement le type Object, tu fais un test et en debug tu regarde le vrai type qui t es renvoyé comme ca apres tu change Object en son vrai type et tout roule !!
++ Toinou
0
OliV_25 Messages postés 29 Date d'inscription mercredi 23 juin 2004 Statut Membre Dernière intervention 16 août 2006
10 août 2006 à 17:01
ce ce que je suis entrain de faire, mais le probleme c au moment de la définition du type de retour (je sais pas si je suis tres clair )

Mon code Java donne ca en gros :
<hr size="2" width="100%" />
CallableStatement cs2 = getCallableStatement(conn, "{?=call fonctionTest()}", true);

cs2.registerOutParameter(1, OracleTypes.OTHER);

cs2.execute();
ResultSet rs2 = (ResultSet)cs2.getObject(1);   

while (rs2.next())
    System.out.println(rs2.getObject(1));

<hr size="2" width="100%" />
Le probleme se situe au niveau du "registerOutParameter" qui me déclenche une exception du type :
java.sql.SQLException: Type de colonne non valide

et la je vois pu quoi faire
0
Rejoignez-nous