We kunnen TABLE . gebruiken functie op een verzameling om een lijst met cijfers/tekens te krijgen.
SELECT *
FROM TABLE ( sys.odcinumberlist(8779254,8819930,8819931) );
8779254
8819930
8819931
Hier gebruik ik Oracle's interne VARRAY met een limiet van 32767. Je mag je eigen NESTED TABLE . gebruiken typ.
create OR REPLACE TYPE yourtype AS TABLE OF NUMBER;
en selecteer het dan.
SELECT *
FROM TABLE ( yourtype(8779254,8819930,8819931) );
Uw vraag kan dus eenvoudig worden geschreven als
SELECT x_name
FROM table_x
WHERE x_id IN ( SELECT * FROM
TABLE ( yourtype(8779254,8819930,8819931) ) );
12.2 en hoger hoeft u niet eens TABLE op te geven .
SELECT * FROM yourtype(8779254,8819930,8819931) werkt.