Hello à tous,

J'ai lu dans le forum pas mal de topic sur des tableaux dans les clauses IN, etc... mais ça ne correspond pas trop à ce que je cherche (je pense). J'ai l'impression que la solution est assez simple mais je tourne autour du pot.

J'ai une PROC dont les requêtes font souvent appel à des IN, avec des listes de valeurs donc que j'aimerai mettre dans une variable pour facilement les modifier au besoin. Je précise que les valeurs ne sont pas des paramètres de la PROC. Lorsque je met 1 valeur dans ma variable, ça fonctionne. Avec deux valeurs la PROC tourne toujours mais le résultat final n'est pas correct.

J'ai essayé beaucoup de chose, avec ou sans parenthèses, en escapant les quote, etc... sans succès.

Donc ça ressemble à quelque chose comme :

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
CREATE OR REPLACE blabla is
 
list1value varchar2(80);
list2value varchar2(80);
 
BEGIN
 
list1value = 'a';
list2value = xxxxxxx ; -- voir ci dessous
 
INSERT INTO okok
SELECT * 
FROM blabla
WHERE machinchose IN (list1value);
 
INSERT INTO okok_bis
SELECT * 
FROM trucbidule
WHERE machinchose IN (list2value);
Sur le list2value, j'ai essayé des :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
list2value = 'b', 'c';
list2value = ' ''b'', ''c'' ';
list2value = ( 'b' || ',' || 'c' )
Sans succès.

Merci pour l'aide !