मैं अनुमान लगा रहा हूं कि आप संख्याओं के उस सेट को एक स्ट्रिंग के रूप में पास करना चाहते हैं और अलग-अलग संख्याओं में विभाजित करना चाहते हैं। यह आपके विचार से कठिन है, क्योंकि Oracle बिल्ट-इन टोकननाइज़र के साथ नहीं आता है। अजीब, हुह?
दास इंटरवाब्स के आसपास कई पीएल/एसक्यूएल टोकननाइज़र समाधान दस्तक दे रहे हैं। मैं अनूप पाणि के कार्यान्वयन के एक प्रकार का उपयोग कर रहा हूं, जो रेगेक्स का उपयोग करता है (इसलिए केवल ओरेकल 10 जी या उच्चतर)। मेरा संस्करण संख्याओं की एक सरणी देता है जिसे मैंने SQL प्रकार के रूप में घोषित किया है:
SQL> create or replace type numbers as table of number
2 /
Type created.
SQL>
इसका मतलब है कि मैं इसे एक चयन कथन में तालिका() फ़ंक्शन में इनपुट के रूप में उपयोग कर सकता हूं:
SQL> select * from table (str_to_number_tokens('20000, 240004, 375000, 255000'))
2 /
COLUMN_VALUE
------------
20000
240004
375000
255000
SQL>
इसका मतलब है कि मैं आपके नंबरों की स्ट्रिंग को एक टेबल में बदल सकता हूं, जिसमें मैं एक क्वेरी में शामिल हो सकता हूं, जैसे:
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>