यदि आप मौजूदा तालिका को अपडेट नहीं करना चाहते हैं और केवल डेटा का चयन करना चाहते हैं तो आप इस कुछ श्रमसाध्य क्वेरी का उपयोग कर सकते हैं।
http://sqlfiddle.com/#!4/22909/4
WITH changed_table AS
(SELECT val1, EXTRACTVALUE (x.COLUMN_VALUE, 'e') val2new
FROM (SELECT val1, val2 xml_str
FROM table1),
TABLE (XMLSEQUENCE (XMLTYPE ( '<e><e>'
|| REPLACE (xml_str, ',', '</e><e>')
|| '</e></e>'
).EXTRACT ('e/e')
)
) x)
SELECT ct.val1, listagg(table2.val2,',') within group (order by table2.val2) val2
FROM changed_table ct, table2 table2
WHERE ct.val2new = table2.val1
group by ct.val1;
मैंने अल्पविराम से अलग की गई संख्याओं को पंक्तियों में अलग करने के लिए XMLTYPE का उपयोग किया है। फिर विवरण प्राप्त करने के लिए दूसरी तालिका के साथ पंक्तियों में शामिल हो गए और अंत में अल्पविराम से अलग स्ट्रिंग बनाने के लिए LISTAGG फ़ंक्शन का उपयोग किया। पता नहीं यह क्वेरी कितनी कारगर है। मैं मार्क बैनिस्टर की टिप्पणी से सहमत हूं।