oui je vois très bien ce que vous voulez dire et je l'ai déjà fais, j'ai testé tout les cas avec la requête et ça marche , maintenant j'aimerai créer une procédure qui permet d'afficher tous ces professeur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
create or replace procedure affichage is
cursor crs is select dm.id_prof,dtm.id_lycee,r.nom_region from demande dm join detaille_demande dtm on dm.id_demande = dtm.id_demande join lycee l on l.id_lycee=dtm.id_lycee join academie ac on ac.id_academie=l.id_academie join region r on r.id_region = ac.id_region where dm.id_prof not in (select p.id_prof from region r2 join academie ac on r2.id_region = ac.id_region join lycee l on l.id_academie=ac.id_academie join professeur p on p.id_lycee=l.id_lycee where r.id_region = r2.id_region);
begin
for i in crs loop
dbms_output.put_line(i.id_prof);
end loop;
end;
1 * est ce que dans DBMS je dois ecrire i.dm.id_prof ou bien i.id_prof
2 * même si je fais set Serveroutput on , lorsque j'appelle la procédure dans un code plSQL

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
set serveroutput on;
declare
begin
affichage;
end;
resultat : bloc anonyme terminé.