Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle फ़ंक्शन बदलें

यदि आप मौजूदा तालिका को अपडेट नहीं करना चाहते हैं और केवल डेटा का चयन करना चाहते हैं तो आप इस कुछ श्रमसाध्य क्वेरी का उपयोग कर सकते हैं।

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 फ़ंक्शन का उपयोग किया। पता नहीं यह क्वेरी कितनी कारगर है। मैं मार्क बैनिस्टर की टिप्पणी से सहमत हूं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ASP.net MVC और Oracle के साथ कनेक्शन पूलिंग, अधिकतम पूल आकार में निर्दिष्ट से अधिक कनेक्शन की अनुमति देता है

  2. Oracle RAC N+1 अतिरेक

  3. मुफ़्त या परीक्षण Oracle डेटाबेस वातावरण

  4. Oracle PL/SQL:समानांतर निष्पादन को रोकें

  5. Oracle - किसी उपयोगकर्ता को किसी अन्य उपयोगकर्ता की वस्तुओं के अधिकार कैसे प्रदान करें