Jeg gætter på, at du vil videregive det sæt tal som en streng og opdele dem i individuelle tal. Dette er sværere, end du måske tror, fordi Oracle ikke kommer med en indbygget tokenizer. Underligt, hva'?
Der er en række PL/SQL tokenizer-løsninger, der banker rundt på Das Interwabs. Jeg bruger en variant af Anup Panis implementering, som bruger Regex (derfor kun Oracle 10g eller højere). Min variant returnerer en matrix af tal, som jeg har erklæret som en SQL-type:
SQL> create or replace type numbers as table of number
2 /
Type created.
SQL>
Det betyder, at jeg kan bruge det som input til en TABLE()-funktion i en SELECT-sætning:
SQL> select * from table (str_to_number_tokens('20000, 240004, 375000, 255000'))
2 /
COLUMN_VALUE
------------
20000
240004
375000
255000
SQL>
Det betyder, at jeg kan omdanne din række af tal til en tabel, som jeg kan slutte mig til i en forespørgsel, som denne:
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>