Bonjour,

Ça fait un moment que je tourne en rond alors je me tourne vers vous.
J'ai une fonction stockée qui me renvoi un type personnalisé VARRAY.
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
27
	FUNCTION GET_PODIUM (
		P_COURSE_ID IN COURSE.COURSE_ID%TYPE
		) RETURN PODIUM_COMPLET
	IS
	PODIUM_GENERE PODIUM_COMPLET;
	I NUMBER;
	CURSOR LES_RESULTATS IS
		SELECT SPORTIF.NOM_SPORTIF
		FROM V_PODIUM, SPORTIF
		WHERE
			V_PODIUM.SPORTIF_NUM = SPORTIF.SPORTIF_NUM AND
			V_PODIUM.COURSE_ID = P_COURSE_ID;
	BEGIN
		OPEN LES_RESULTATS;
 
		I := 1;
		FETCH LES_RESULTATS INTO PODIUM_GENERE(I);
		WHILE(LES_RESULTATS%FOUND)
		LOOP
			FETCH LES_RESULTATS INTO PODIUM_GENERE(I);
			I := I + 1;
		END LOOP;
 
		CLOSE LES_RESULTATS;
 
		RETURN PODIUM_GENERE;
	END;
Je voudrais récupérer ce VARRAY dans mon code C# mais je n'y parviens pas.
J'ai tenté de récupérer ça avec un ExecuteScalar pour stocker dansa un ArrayList mais sans succès.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
            try
            {
                ArrayList test = (ArrayList)objDb.getScalarSQL("SELECT PKG_GENERATION.GET_PODIUM(32) FROM DUAL");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
De plus rien ne m'aiguille puisque le message de l'exception est vide.

Information : objDB.getScalarSQL renvoit une instance de "Object".

Si l'un de vous as la réponse ça m'aiderait énormément.

Merci d'avance.