Immagino tu voglia passare quell'insieme di numeri come una stringa e dividerlo in singoli numeri. Questo è più difficile di quanto potresti pensare, perché Oracle non viene fornito con un tokenizzatore integrato. Strano, eh?
Esistono numerose soluzioni di tokenizer PL/SQL che aggirano Das Interwabs. Sto usando una variante dell'implementazione di Anup Pani, che utilizza Regex (quindi solo Oracle 10g o superiore). La mia variante restituisce una matrice di numeri che ho dichiarato come tipo SQL:
SQL> create or replace type numbers as table of number
2 /
Type created.
SQL>
Ciò significa che posso usarlo come input per una funzione TABLE() in un'istruzione SELECT:
SQL> select * from table (str_to_number_tokens('20000, 240004, 375000, 255000'))
2 /
COLUMN_VALUE
------------
20000
240004
375000
255000
SQL>
Ciò significa che posso trasformare la tua stringa di numeri in una tabella a cui posso unirmi in una query, come questa:
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>