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

वर्कर 2 को कैसे पार्स करें और इसे कई पंक्तियों में कैसे बनाएं?

आप पाइपलाइन फ़ंक्शन का उपयोग कर सकते हैं:

CREATE or replace TYPE test_type AS TABLE OF varchar2(40)

CREATE or replace FUNCTION test_func (d VARCHAR2)
   RETURN test_type
   PIPELINED
IS
BEGIN
   FOR C1 IN (    SELECT REGEXP_SUBSTR (d, '[^,]+', 1, LEVEL) x
                    FROM DUAL
              CONNECT BY REGEXP_SUBSTR (d, '[^,]+', 1, LEVEL) IS NOT NULL)
   LOOP
      PIPE ROW (c1.x);
   END LOOP;
END;
/

WITH test
     AS ( your_query_here )
SELECT x.id2, x.mydate, y.*
  FROM test x, TABLE (test_func (x.d)) y

मैं यहां तारीख (आरक्षित शब्द) के बजाय mydate और डेटा के बजाय d का उपयोग कर रहा हूं। नमूना:

WITH test
     AS (SELECT 2 AS id2, SYSDATE AS mydate, '1.0,1.1,1.2,11,1.4,1.5,2.6,2.7,2.8,2.9,44,55' AS d FROM DUAL
         UNION ALL
         SELECT 3 AS id2, SYSDATE + 1 AS mydate, '19.5,19.9,11.5,11.1,21.2,33,1.4,1.5,2.6,2.7,2.8,2.9' AS d
           FROM DUAL
         UNION ALL
         SELECT 4 AS id2, SYSDATE + 1 AS mydate, '9.5,9.9,1.5,1.1,1.2,66,1.4,1.5,2.6,2.7,2.8,2.9' AS d
           FROM DUAL)
SELECT x.id2, x.mydate, y.*
  FROM test x, TABLE (test_func (x.d)) y

कुछ लिंक:

कॉमा सेपरेटेड स्ट्रिंग को कैसे विभाजित करें और चुनिंदा स्टेटमेंट के IN क्लॉज में कैसे पास करें

पाइपलाइन और समानांतर टेबल फ़ंक्शंस का उपयोग करना



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. धाराप्रवाह निबर्ननेट ओरेकल पहचानकर्ता बहुत लंबा - उपनाम नाम मुद्दा

  2. Oracle SQL डेवलपर में एक अज्ञात संबंधपरक आरेख प्रतीक मिला

  3. हाइबरनेट:वेतन वृद्धि और Oracle स्कीमा का उपयोग कर आईडी जनरेटर

  4. जहां स्थिति pl/sql . के लिए एक सरणी के माध्यम से लूपिंग

  5. स्तंभ डेटा को किसी मान पर मैप करें (ओरेकल)