Bonjour

Voici ma fonction en PL/SQL
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
create or replace function getAllSubFundVersions
	   return TT_SUBFUND_VERSIONED  PIPELINED as
	   
BEGIN
	FOR cur in ( SELECT *
			 FROM SUBFUND
			ORDER BY ID_)
	LOOP
		PIPE ROW(cur);
	END LOOP; 
	RETURN;
END;
/
Elle plante sur la ligne rouge:
Function PLS-00382: expression is of wrong type

voici la creation de mes types perso:
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
CREATE TYPE T_SUBFUND AS OBJECT(
    ID_ INT,
    NAME_ VARCHAR2(60 BYTE),
	MAJORCLASS_ID_ INT,
	ROLLALGO_ VARCHAR2(10),
	EXPIRYNUMBER_ INT,
	ROLLLAG_ INT,
	VALOLAG_ INT,
	STRATEGY_ VARCHAR2(10),
    CRETIME_ DATE
) NOT FINAL;
/
CREATE TYPE TT_SUBFUND AS TABLE OF T_SUBFUND;
/
CREATE TYPE T_SUBFUND_VERSIONED UNDER T_SUBFUND(
    CREUSER_ NUMBER(11),
    FROM_ DATE,
    TO_ DATE
)FINAL;
/
CREATE TYPE TT_SUBFUND_VERSIONED AS TABLE OF T_SUBFUND_VERSIONED;
 
CREATE TABLE SUBFUND OF T_SUBFUND_VERSIONED;
/

La question est:
Comment créer un cursor d'un type précis? ici du type T_SUBFUND_VERSIONED.

En cherchant sur let net, j'ai trouvé mention de REF CURSOR mais je comprend pas du tout comment ca marche.