Możemy użyć TABLE
funkcji na kolekcji, aby uzyskać listę liczb / znaków.
SELECT *
FROM TABLE ( sys.odcinumberlist(8779254,8819930,8819931) );
8779254
8819930
8819931
Tutaj używam wewnętrznego VARRAY
Oracle z limitem 32767. Możesz użyć własnej NESTED TABLE
typ.
create OR REPLACE TYPE yourtype AS TABLE OF NUMBER;
a następnie wybierz go.
SELECT *
FROM TABLE ( yourtype(8779254,8819930,8819931) );
Twoje zapytanie można więc po prostu zapisać jako
SELECT x_name
FROM table_x
WHERE x_id IN ( SELECT * FROM
TABLE ( yourtype(8779254,8819930,8819931) ) );
12.2 i nowsze, nie musisz nawet określać TABLE
.
SELECT * FROM yourtype(8779254,8819930,8819931)
działa.