Podemos usar
TABLE
função em uma coleção para obter uma lista de números/caracteres. SELECT *
FROM TABLE ( sys.odcinumberlist(8779254,8819930,8819931) );
8779254
8819930
8819931
Aqui estou usando o
VARRAY
interno da Oracle com um limite de 32767. Você pode usar sua própria NESTED TABLE
modelo. create OR REPLACE TYPE yourtype AS TABLE OF NUMBER;
e, em seguida, selecione-o.
SELECT *
FROM TABLE ( yourtype(8779254,8819930,8819931) );
Assim, sua consulta pode ser simplesmente escrita como
SELECT x_name
FROM table_x
WHERE x_id IN ( SELECT * FROM
TABLE ( yourtype(8779254,8819930,8819931) ) );
12.2 e acima, você nem precisará especificar
TABLE
. SELECT * FROM yourtype(8779254,8819930,8819931)
funciona.