Ik vermoed dat je die reeks getallen als een tekenreeks wilt doorgeven en in afzonderlijke getallen wilt splitsen. Dit is moeilijker dan je zou denken, omdat Oracle geen ingebouwde tokenizer heeft. Vreemd, hè?
Er zijn een aantal PL/SQL-tokenizer-oplossingen die rond Das Interwabs kloppen. Ik gebruik een variant van de implementatie van Anup Pani, die Regex gebruikt (vandaar alleen Oracle 10g of hoger). Mijn variant retourneert een reeks getallen die ik heb gedeclareerd als een SQL-type:
SQL> create or replace type numbers as table of number
2 /
Type created.
SQL>
Dit betekent dat ik het kan gebruiken als invoer voor een TABLE()-functie in een SELECT-instructie:
SQL> select * from table (str_to_number_tokens('20000, 240004, 375000, 255000'))
2 /
COLUMN_VALUE
------------
20000
240004
375000
255000
SQL>
Dit betekent dat ik uw reeks getallen kan omzetten in een tabel die ik kan gebruiken in een query, zoals deze:
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>