Bonjour,
J'ai dans une base de données des individus, avec leurs dossiers et des événements sur ces dossiers.
Je récupère dans des logs un numéro d'id evenement.
Je cherche à récupérer les id individus liés à cet évènement. Ca c'est OK j'ai ma requête qui fonctionne.
Pour chaque id individu, je voudrais soritr le contenu de la table individu.
J'essaie donc de faire un cursor, qui récupère la liste des id individu, et dans une boucle, je voudrais, pour chaque id individu, passer la requête.
Voici ce que j'ai écrit :
Donc là, il me dit, que dans le boucle je dois avoir un SELECT INTO.
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 Declare --Déclaration du curseur CURSOR C_EMP IS select ind1.nir_actu from individu ind1, dossier dos1 where ind1.id_individu = dos1.id_individu and dos1.id_sinistre = (select distinct (dos2.id_sinistre) from dossier dos2 where id_sinistre = (select sin1.id_sinistre from sinistre sin1 where sin1.nir_victime in (select nir_actu from individu ind2, evenement evt2 where evt2.ID_INDIVIDU = ind2.ID_INDIVIDU and evt2.id_evenement = 1048745))); Begin For Cur IN C_EMP Loop select * FROM individu where nir_actu=Cur.nir_actu; End loop ; End ;
De ce que j'ai compris, il faudrait que je déclare comme une variable chaque colonne que je veux récupérer.
Sauf qu'en pratique, je cherche a sortir tous les éléments de l'individu et de ses dossiers, donc je vais requêter dans 12 tables, qui ont en moyenne 15 colonnes. Bref, c'est compliqué !
Je précise que c'est la première fois que je fais du PL/SQL...
Qu'en pensez-vous ? Que dois-je faire pour simplifier ?
Merci d'avance,
Deb
Partager