Můžeme použít TABLE
funkce na kolekci získat seznam čísel / znaků.
SELECT *
FROM TABLE ( sys.odcinumberlist(8779254,8819930,8819931) );
8779254
8819930
8819931
Zde používám interní VARRAY
Oracle s limitem 32767. Můžete použít svou vlastní NESTED TABLE
typ.
create OR REPLACE TYPE yourtype AS TABLE OF NUMBER;
a poté jej vyberte.
SELECT *
FROM TABLE ( yourtype(8779254,8819930,8819931) );
Takže váš dotaz lze jednoduše napsat jako
SELECT x_name
FROM table_x
WHERE x_id IN ( SELECT * FROM
TABLE ( yourtype(8779254,8819930,8819931) ) );
12.2 a vyšší, nemusíte ani zadávat TABLE
.
SELECT * FROM yourtype(8779254,8819930,8819931)
funguje.