Mega Code Archive

 
Categories / Oracle PLSQL Tutorial / Set
 

MULTISET EXCEPT

SQL> DECLARE   2      TYPE nested_type IS TABLE OF NUMBER;   3      nt1 nested_type := nested_type(1,2,3);   4      nt2 nested_type := nested_type(3,2,1);   5      nt3 nested_type := nested_type(2,3,1,3);   6      nt4 nested_type := nested_type(1,2,4);   7      answer nested_type;   8      PROCEDURE show_answer (str IN VARCHAR2)   9      IS  10         l_row   PLS_INTEGER;  11      BEGIN  12         DBMS_OUTPUT.put_line (str);  13         l_row := answer.FIRST;  14  15         WHILE (l_row IS NOT NULL)  16         LOOP  17            DBMS_OUTPUT.put_line (l_row || '=' || answer (l_row));  18            l_row := answer.NEXT (l_row);  19         END LOOP;  20  21         DBMS_OUTPUT.put_line ('');  22      END show_answer;  23  BEGIN  24      answer := nt1 MULTISET UNION nt4;  25      show_answer('nt1 MULTISET UNION nt4');  26      answer := nt1 MULTISET UNION nt3;  27      show_answer('nt1 MULTISET UNION nt3');  28      answer := nt1 MULTISET UNION DISTINCT nt3;  29      show_answer('nt1 MULTISET UNION DISTINCT nt3');  30      answer := nt2 MULTISET INTERSECT nt3;  31      show_answer('nt2 MULTISET INTERSECT nt3');  32      answer := nt2 MULTISET INTERSECT DISTINCT nt3;  33      show_answer('nt2 MULTISET INTERSECT DISTINCT nt3');  34      answer := SET(nt3);  35      show_answer('SET(nt3)');  36      answer := nt3 MULTISET EXCEPT nt2;  37      show_answer('nt3 MULTISET EXCEPT nt2');  38      answer := nt3 MULTISET EXCEPT DISTINCT nt2;  39      show_answer('nt3 MULTISET EXCEPT DISTINCT nt2');  40  END;  41  / PL/SQL procedure successfully completed.