मैं कुछ प्रोग्राम लिख रहा था जो WM_CONCAT फ़ंक्शन का उपयोग करता है। जब मैं यह क्वेरी चलाता हूं:DISTINCT क्लॉज के साथ WM_CONCAT - संकलित पैकेज बनाम स्टैंड-अलोन क्वेरी समस्या
SELECT WM_CONCAT(DISTINCT employee_id)
FROM employee
WHERE ROWNUM < 20;
यह ठीक काम करता है। जब मैं एक पैकेज समारोह या प्रक्रिया में अपेक्षाकृत समान क्वेरी संकलित करने के लिए प्रयास करते हैं, यह इस त्रुटि पैदा करता है: PL/SQL: ORA-30,482: DISTINCT विकल्प इस समारोह
FUNCTION fetch_raw_data_by_range
RETURN VARCHAR2 IS
v_some_string VARCHAR2(32000);
BEGIN
SELECT WM_CONCAT(DISTINCT employee_id)
INTO v_some_string
FROM employee
WHERE ROWNUM < 20;
RETURN v_some_string;
END;
के लिए अनुमति नहीं मुझे पता है WM_CONCAT आधिकारिक तौर पर समर्थित नहीं है , लेकिन क्या कोई यह समझा सकता है कि यह DISTINCT के साथ अकेले स्टैंड के रूप में क्यों काम करेगा, लेकिन पैकेज में संकलित नहीं है?
आप समान प्राप्त करने में सक्षम होना चाहिए
एक अन्य समाधान गतिशील एसक्यूएल के रूप में Nagh सुझाव का उपयोग करना है, जैसा कि नीचे उप क्वेरी का उपयोग करने के लिए है, LISTAGG फ़ंक्शन के साथ परिणाम। – OldProgrammer
मैंने इसे oracle10g के रूप में टैग किया है, जो कि फ़ंक्शन – Reimius