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

Oracle:स्ट्रिंग संयोजन बहुत लंबा है

आप COLLECT() समारोह स्ट्रिंग्स को एक संग्रह में एकत्रित करने के लिए और फिर स्ट्रिंग्स को जोड़ने के लिए उपयोगकर्ता-परिभाषित फ़ंक्शन का उपयोग करें:

Oracle सेटअप :

CREATE TYPE stringlist IS TABLE OF VARCHAR2(4000);
/

CREATE FUNCTION concat_List(
  strings IN stringlist,
  delim   IN VARCHAR2 DEFAULT ','
) RETURN CLOB DETERMINISTIC
IS
  value CLOB;
  i     PLS_INTEGER;
BEGIN
  IF strings IS NULL THEN
    RETURN NULL;
  END IF;
  value := EMPTY_CLOB();
  IF strings IS NOT EMPTY THEN
    i := strings.FIRST;
    LOOP
      IF i > strings.FIRST AND delim IS NOT NULL THEN
        value := value || delim;
      END IF;
      value := value || strings(i);
      EXIT WHEN i = strings.LAST;
      i := strings.NEXT(i);
    END LOOP;
  END IF;
  RETURN value;
END;
/

क्वेरी :

SELECT Iav.Item_Id AS Attr_Item_Id,
       CONCAT_LIST(
         CAST(
           COLLECT(
             La.Attribute_Name || '|~|' || Lav.Attribute_Value ||' '|| Lau.Attribute_Uom
             ORDER BY ICA.DISP_SEQ,LA.ATTRIBUTE_NAME
           )
           AS stringlist
         ),
         '}~}'
       ) AS ATTR
FROM   your_table
GROUP BY iav.item_id;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLcl (Oracle) का उपयोग करते समय किसी XML फ़ाइल में क्वेरी परिणाम निर्यात करें

  2. ऑरैकल एसक्यूएल डेवलपर में संग्रहीत प्रक्रिया कैसे चलाएं?

  3. IN () क्लॉज ऑरैकल PLSQL में ऐरे

  4. ORA-02273 को ठीक करें:इस अनूठी/प्राथमिक कुंजी को कुछ विदेशी कुंजियों द्वारा संदर्भित किया जाता है

  5. क्या डेटाबेस प्रक्रिया को कई बार एप्लिकेशन से कॉल करने पर प्रदर्शन प्रभावित होगा?