Bonjour,

Je suis dans une procédure stockée.
Suivant la valeur de ma variable V_PARAM, la liste des identifiants en paramètre va être variable (cf exemple ci-dessous).

Une liste, ça ne marche pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
select t.champ1, t.champ2
from MATABLE t 			
where t.champ3 in 
(select case when V_PARAM=3 then (120, 2) else (5) end from dual)
Une valeur simple, ça marche (mais c'est pas ce que je veux)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
select t.champ1, t.champ2
from MATABLE t 			
where t.champ3 in 
(select case when V_PARAM=3 then 120 else 5 end from dual)
Si c'est pas possible, je suis aussi preneur d'une solution qui me permette carrément de faire des sélect différents de ce type... à l'intérieur d'une boucle for :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
for c_table in (
--cas1 :
select t.champ1, t.champ2
from MATABLE t 			
where t.champ3 in (120, 2) 
--cas2 ?
)loop
--bla, bla
end loop;

Merci pour votre aide.