Podemos usar TABLE
función en una colección para obtener una lista de números/caracteres.
SELECT *
FROM TABLE ( sys.odcinumberlist(8779254,8819930,8819931) );
8779254
8819930
8819931
Aquí estoy usando el VARRAY
interno de Oracle con un límite de 32767. Puede usar su propia NESTED TABLE
tipo.
create OR REPLACE TYPE yourtype AS TABLE OF NUMBER;
y luego selecciónelo.
SELECT *
FROM TABLE ( yourtype(8779254,8819930,8819931) );
Entonces, su consulta simplemente puede escribirse como
SELECT x_name
FROM table_x
WHERE x_id IN ( SELECT * FROM
TABLE ( yourtype(8779254,8819930,8819931) ) );
12.2 y superior, ni siquiera necesitará especificar TABLE
.
SELECT * FROM yourtype(8779254,8819930,8819931)
funciona.