Saya kira Anda ingin meneruskan kumpulan angka itu sebagai string dan membaginya menjadi angka-angka individual. Ini lebih sulit dari yang Anda kira, karena Oracle tidak datang dengan tokenizer bawaan. Aneh, ya?
Ada sejumlah solusi tokenizer PL/SQL yang ada di sekitar Das Interwabs. Saya menggunakan varian implementasi Anup Pani, yang menggunakan Regex (karenanya hanya Oracle 10g atau lebih tinggi). Varian saya mengembalikan larik angka yang telah saya nyatakan sebagai tipe SQL:
SQL> create or replace type numbers as table of number
2 /
Type created.
SQL>
Ini berarti saya dapat menggunakannya sebagai input ke fungsi TABLE() dalam pernyataan SELECT:
SQL> select * from table (str_to_number_tokens('20000, 240004, 375000, 255000'))
2 /
COLUMN_VALUE
------------
20000
240004
375000
255000
SQL>
Ini berarti saya dapat mengubah rangkaian angka Anda menjadi tabel yang dapat saya gabungkan dalam kueri, seperti ini:
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>