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

Oracle PL/SQL तालिका प्रकार का TO_CHAR

ठीक है, क्षमा करें यह पूरा नहीं हुआ है, लेकिन @Lukas के साथ फॉलोअप करने के लिए, मेरे पास अब तक जो है वह यहां दिया गया है:

सबसे पहले, किसी भी डेटा/किसी भी प्रकार के प्रकार बनाने की कोशिश करने के बजाय, मैंने कर्सर से निकाले गए एक्सएमएल का उपयोग करने की कोशिश की ... अजीब, लेकिन यह सामान्य:

CREATE OR REPLACE procedure printCur(in_cursor IN sys_refcursor) IS
begin

    FOR c IN (SELECT ROWNUM rn,
                    t2.COLUMN_VALUE.getrootelement () NAME,
                    EXTRACTVALUE (t2.COLUMN_VALUE, 'node()') VALUE
               FROM TABLE (XMLSEQUENCE (in_cursor)) t,
                    TABLE (XMLSEQUENCE (EXTRACT (COLUMN_VALUE, '/ROW/node()'))) t2
               order by 1)

   LOOP
      DBMS_OUTPUT.put_line (c.NAME || ': ' || c.VALUE);
   END LOOP;

exception
    when others then raise;
end;
/

अब, इसे कॉल करने के लिए, आपको एक कर्सर की आवश्यकता है, इसलिए मैंने pl/sql में कर्सर को कास्ट करने का प्रयास किया, कुछ ऐसा:

open v_cur for select * from table(cast(v_tab as tab_type));

लेकिन v_tab को कैसे परिभाषित किया जाता है, इस पर निर्भर करते हुए, यह pl/sql कास्ट में समस्याएं पैदा कर सकता है या नहीं भी हो सकता है (नेस्टेड टेबल डीफ़ में% पंक्ति प्रकार का उपयोग करने से समस्याएं आती हैं)।

वैसे भी, आप इस पर निर्माण कर सकते हैं या इसे अपनी पसंद के अनुसार परिष्कृत कर सकते हैं। (और संभवतः xmltable का उपयोग करें...)

आशा है कि यह मदद करता है




  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. EBS R12.2/ स्टैंडअलोन वेबलॉजिक में वेबलॉगिक सर्वर संस्करण/पैच खोजें

  3. Oracle डेटा इंटीग्रेटर (ODI)

  4. अनुगामी शून्य

  5. मैं Oracle में एक स्ट्रिंग में शब्दों की संख्या कैसे गिन सकता हूं?