Мы можем использовать функцию TABLE
для коллекции, чтобы получить список чисел / символов.
SELECT *
FROM TABLE ( sys.odcinumberlist(8779254,8819930,8819931) );
8779254
8819930
8819931
Здесь я использую внутренний VARRAY
Oracle с пределом 32767. Вы можете использоватьсвой собственный NESTED TABLE
тип.
create OR REPLACE TYPE yourtype AS TABLE OF NUMBER;
и затем выберите его.
SELECT *
FROM TABLE ( yourtype(8779254,8819930,8819931) );
Итак, ваш запрос может быть просто записан как
SELECT x_name
FROM table_x
WHERE x_id IN ( SELECT * FROM
TABLE ( yourtype(8779254,8819930,8819931) ) );
12.2 ивыше, вам даже не нужно указывать TABLE
.
SELECT * FROM yourtype(8779254,8819930,8819931)
works.