Jag antar att du vill skicka den uppsättningen siffror som en sträng och delas upp i individuella nummer. Detta är svårare än du kanske tror, eftersom Oracle inte kommer med en inbyggd tokenizer. Konstigt va?
Det finns ett antal PL/SQL-tokenizer-lösningar som knackar på Das Interwabs. Jag använder en variant av Anup Panis implementering, som använder Regex (därav endast Oracle 10g eller högre). Min variant returnerar en array av tal som jag har deklarerat som en SQL-typ:
SQL> create or replace type numbers as table of number
2 /
Type created.
SQL>
Det betyder att jag kan använda den som en indata till en TABLE()-funktion i en SELECT-sats:
SQL> select * from table (str_to_number_tokens('20000, 240004, 375000, 255000'))
2 /
COLUMN_VALUE
------------
20000
240004
375000
255000
SQL>
Det betyder att jag kan förvandla din sträng med nummer till en tabell som jag kan ansluta till i en fråga, så här:
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>