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

दो अनियंत्रित सीमांकित सूचियों के बीच अंतर (ओरेकल)

यदि आपके पास APEX_UTIL . तक पहुंच है , आप स्ट्रिंग्स को एक सरणी में पार्स कर सकते हैं, उन्हें संग्रह में परिवर्तित कर सकते हैं, फिर MULTISET EXCEPT का उपयोग कर सकते हैं (जो माइनस के समान है लेकिन संग्रह के लिए):

SET SERVEROUT ON
DECLARE
  TYPE set_t IS TABLE OF varchar2(100);
  listA APEX_APPLICATION_GLOBAL.vc_arr2;
  listB APEX_APPLICATION_GLOBAL.vc_arr2;
  excpt set_t;
  FUNCTION to_set_t (arr IN APEX_APPLICATION_GLOBAL.vc_arr2)
    RETURN set_t IS
    rset set_t := set_t();
  BEGIN
    rset.EXTEND(arr.COUNT);
    FOR i IN 1..arr.COUNT LOOP
      rset(i) := TRIM(arr(i));
    END LOOP;
    RETURN rset;
  END;
BEGIN
  -- parse lists into arrays
  listA := APEX_UTIL.string_to_table('a1, b4, g3, h6, t8, a0',',');
  listB := APEX_UTIL.string_to_table('b4, h6, a0, t8, a1',',');
  -- convert arrays to collections, then do the minus
  excpt := to_set_t(listA) MULTISET EXCEPT to_set_t(listB);
  -- display the results
  FOR i IN 1..excpt.COUNT LOOP
    DBMS_OUTPUT.put_line(excpt(i));
  END LOOP;
END;

परिणाम:

g3

MULTISET ऑपरेटरों के बारे में अधिक जानकारी, जिन्हें 10g में पेश किया गया था:http:// www.oracle-developer.net/display.php?id=303




  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. सी # में ओडीबीसी का उपयोग कर ओरेकल पैकेज को कॉल करने का प्रयास करते समय सिंटेक्स त्रुटि

  3. Oracle sql में निकटतम तिथियाँ कैसे प्राप्त करें?

  4. मैं इस तालिका में लगातार डुप्लिकेट मान कैसे प्राप्त कर सकता हूं?

  5. 12c डेटा रिडक्शन