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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
function getFilms(p_id_FILM in curseRetTab) return filmsCatalogue is
v_ret filmsCatalogue;
newFilms filmsRecord := filmsRecord(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
TYPE ACTORS IS TABLE OF PERSONNE%ROWTYPE INDEX BY BINARY_INTEGER;
actorOfFilm ACTORS;
TYPE PRODS IS TABLE OF A_PRODUIT%ROWTYPE INDEX BY BINARY_INTEGER;
production PRODS;
TYPE GENRES IS TABLE OF GENRE%ROWTYPE INDEX BY BINARY_INTEGER;
gen GENRES;
counter INTEGER;
actor VARCHAR(2000);
mpaa VARCHAR(30);
director VARCHAR(30);
prod VARCHAR(100);
quality VARCHAR(30);
genr VARCHAR(2000);
TYPE EmpCurTyp IS REF CURSOR; -- define weak REF CURSOR type
curseFilm EmpCurTyp;
lgFilm Film%ROWTYPE;
numFilm INTEGER;
p_id INTEGER;
begin
numFilm := 1;
/*IF p_id_film.count = 3
THEN v_ret := filmsCatalogue(newFilms,newFilms,newFilms);
ELSE
IF p_id_film.count = 5
THEN v_ret := filmsCatalogue(newFilms,newFilms,newFilms,newFilms,newFilms);
ELSE
v_ret := filmsCatalogue(newFilms,newFilms,newFilms,newFilms,newFilms,newFilms,newFilms,newFilms,newFilms,newFilms);
END IF;
END IF;*/
v_ret := filmsCatalogue();
while numFilm <= p_id_film.count
LOOP
p_id := p_id_film(numFilm).id_film;
OPEN curseFilm FOR 'SELECT * FROM FILM WHERE ID_FILM = :s' USING p_id;
FETCH curseFilm INTO lgFilm;
CLOSE curseFilm;
//[...] code pour créer mes chaines
v_ret.EXTEND ;
v_ret(numFilm).id_film := lgFilm.id_film;
v_ret(numFilm).Nom := lgFilm.Nom;
v_ret(numFilm).Date_de_sortie := lgFilm.Date_de_sortie;
v_ret(numFilm).duree := lgFilm.duree;
v_ret(numFilm).couleur := lgFilm.couleur;
v_ret(numFilm).affiche := lgFilm.affiche;
v_ret(numFilm).mpaa := mpaa;
v_ret(numFilm).genre := genr;
v_ret(numFilm).acteur := actor;
v_ret(numFilm).producteur := director;
v_ret(numFilm).maisonproduction := prod;
v_ret(numFilm).qualite := quality;
numFilm := numFilm +1;
END LOOP;
return v_ret;
end getFilms; |
Partager