FOnction qui renvoit une table
Bonjour,
Je dois créer une fonction qui prend 3 paramêtres et qui renvoit une table qui contient les tuples qui satisfont à un critère. Cette fonction se trouve dans un package que voici :
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 27 28 29 30 31 32
| SET SERVEROUTPUT ON
CREATE OR REPLACE PACKAGE GestionEtudiants AS
TYPE Type_Record IS RECORD
(
Matricule ETUDIANTS.MATRICULE%TYPE,
Nom ETUDIANTS.NOM%TYPE,
Prenom ETUDIANTS.PRENOM%TYPE
);
TYPE Ma_Table IS TABLE OF Type_Record INDEX BY BINARY_INTEGER;
FUNCTION Rechercher(Matricule IN ETUDIANTS.MATRICULE%TYPE) RETURN ETUDIANTS%ROWTYPE;
FUNCTION RechercheMatricule(Matricule IN ETUDIANTS.MATRICULE%TYPE) RETURN NUMBER;
PROCEDURE Supprimer(Matricule IN ETUDIANTS.MATRICULE%TYPE);
FUNCTION Lister(AnneeSco IN HISTORIQUE.ANSCO%TYPE, Tendance IN GROUPES.TENDANCE%TYPE, AnneeEtude IN HISTORIQUE.SECETUD%TYPE) RETURN Ma_Table;
END GestionEtudiants;
/
CREATE OR REPLACE PACKAGE BODY GestionEtudiants AS
.....
FUNCTION Lister(AnneeSco IN HISTORIQUE.ANSCO%TYPE, Tendance IN GROUPES.TENDANCE%TYPE, AnneeEtude IN HISTORIQUE.SECETUD%TYPE)
RETURN Ma_Table
AS
v_test Ma_Table
BEGIN
SELECT ETUDIANTS.MATRICULE, ETUDIANTS.NOM, ETUDIANTS.PRENOM INTO v_test(0).Matricule, v_test(0).Nom, v_test(0).Prenom
FROM ETUDIANTS
WHERE ETUDIANTS.MATRICULE LIKE 'I28592';
RETURN v_test;
EXCEPTION
WHEN OTHERS THEN RAISE;
END Lister;
END GestionEtudiants;
/ |
J'ai enlevé les 3 premiére fonction/procedure qui fonctionnait.
Par contre dans la fonction Lister je n'arrive pas à sélectionner les lignes qui m'interesse et à les mettre dans Ma_Table.
Le corps de la fonction est en phase de test mais normalement je doit avoir plusieurs ligne dans la table que je renvoit donc je ferais soit un BULK COLLECT ou un CURSOR.
Si vous pouviez m'aider ??
Merci
Bonne journée.