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 :
J'ai enlevé les 3 premiére fonction/procedure qui fonctionnait.
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
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; /
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.
Partager