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

Oracle फ़ंक्शन:wm_concat को दोहराएं

जब आप wm_concat का उपयोग करते हैं तो क्या आपको त्रुटि संदेश मिलता है? to_char जैसे कार्यों के विपरीत, यह wmsys के स्वामित्व में है और इसका उपयोग करने के लिए आपको wmsys.wm_concat का उपयोग करने की आवश्यकता हो सकती है। (जब तक आप निश्चित रूप से आवश्यक समानार्थी शब्द नहीं बनाते)।

अब वास्तविक प्रश्न के लिए,

इस तकनीक को स्ट्रिंग एग्रीगेशन कहा जाता है।

आपको यहां कई अन्य विकल्प मिल सकते हैं।

http://www.oracle-base.com/articles/ 10g/StringAggregationTechniques.php अन्य तरीकों के लिए, http://asktom.oracle.com पर "stragg" खोजें। एक और उपयोगी लिंक :http://www.orafaq.com/node/2290

यह शायद सबसे अधिक उपयोग किया जाने वाला है। बहुत सी टीमें अपने स्वयं के कस्टम फ़ंक्शन लिखती हैं जो कमोबेश ऐसा ही करते हैं।

CREATE OR REPLACE FUNCTION get_employees (p_deptno  in  emp.deptno%TYPE)
  RETURN VARCHAR2
IS
  l_text  VARCHAR2(32767) := NULL;
BEGIN
  FOR cur_rec IN (SELECT ename FROM emp WHERE deptno = p_deptno) LOOP
    l_text := l_text || ',' || cur_rec.ename;
  END LOOP;
  RETURN LTRIM(l_text, ',');
END;
/
SHOW ERRORS

जबकि यह समाधान varchar2 और संख्या के लिए काम करता है, सबसे अच्छा सामान्य समाधान Oracle ODCIAggregate इंटरफ़ेस का उपयोग करके बनाया जा सकता है।

http://download-west .oracle.com/docs/cd/B14117_01/appdev.101/b10800/dciaggfns.htm#sthref462

इसके लिए कार्यान्वयन www.oracle-base.com पर पहले लिंक पर है



  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. प्रक्रिया में डीएमएल के बाद प्रतिबद्धता रखने का क्या प्रभाव है?

  4. REFs की तालिका के लिए SCOPE

  5. Oracle SQL - मौजूद नहीं है - स्ट्रिंग मानों की सूची में मौजूद नहीं है