Vi kan bruge TABLE
funktion på en samling for at få en liste over tal/tegn.
SELECT *
FROM TABLE ( sys.odcinumberlist(8779254,8819930,8819931) );
8779254
8819930
8819931
Her bruger jeg Oracles interne VARRAY
med en begrænsning på 32767. Du kan bruge din egen NESTED TABLE
type.
create OR REPLACE TYPE yourtype AS TABLE OF NUMBER;
og vælg det derefter.
SELECT *
FROM TABLE ( yourtype(8779254,8819930,8819931) );
Så din forespørgsel kan simpelthen skrives som
SELECT x_name
FROM table_x
WHERE x_id IN ( SELECT * FROM
TABLE ( yourtype(8779254,8819930,8819931) ) );
12.2 og nyere, behøver du ikke engang at angive TABLE
.
SELECT * FROM yourtype(8779254,8819930,8819931)
virker.