Предполагам, че искате да предадете този набор от числа като низ и да го разделите на отделни числа. Това е по-трудно, отколкото си мислите, защото Oracle не се предлага с вграден токенизатор. Странно, а?
Има редица PL/SQL токенизатори решения, които се чупят около Das Interwabs. Използвам вариант на реализацията на Anup Pani, който използва Regex (следователно само Oracle 10g или по-висока). Моят вариант връща масив от числа, които съм декларирал като SQL тип:
SQL> create or replace type numbers as table of number
2 /
Type created.
SQL>
Това означава, че мога да го използвам като вход за функция TABLE() в оператор SELECT:
SQL> select * from table (str_to_number_tokens('20000, 240004, 375000, 255000'))
2 /
COLUMN_VALUE
------------
20000
240004
375000
255000
SQL>
Това означава, че мога да превърна вашия низ от числа в таблица, към която мога да се присъединя в заявка, както следва:
SQL> select val
2 from t23
3 , ( select column_value as i_no
4 from table (str_to_number_tokens('20000, 240004, 375000, 255000')) ) sq
5 where t23.year = 2010
6 and sq.i_no between t23.r_min and t23.r_max
7 order by t23.priority
8 /
VAL
----------
82
50
52
SQL>