Nous pouvons utiliser TABLE
fonction sur une collection pour obtenir une liste de nombres/caractère.
SELECT *
FROM TABLE ( sys.odcinumberlist(8779254,8819930,8819931) );
8779254
8819930
8819931
Ici, j'utilise le VARRAY
interne d'Oracle avec une limite de 32767. Vous pouvez utiliser votre propre NESTED TABLE
saisir.
create OR REPLACE TYPE yourtype AS TABLE OF NUMBER;
puis sélectionnez-le.
SELECT *
FROM TABLE ( yourtype(8779254,8819930,8819931) );
Ainsi, votre requête peut simplement être écrite comme
SELECT x_name
FROM table_x
WHERE x_id IN ( SELECT * FROM
TABLE ( yourtype(8779254,8819930,8819931) ) );
12.2 et supérieur, vous n'aurez même pas besoin de spécifier TABLE
.
SELECT * FROM yourtype(8779254,8819930,8819931)
fonctionne.