Mega Code Archive

 
Categories / Oracle PLSQL / Result Set
 

Take the result of the MULTISET UNION DISTINCT operation and pass it as an argument to the SET operator to eliminate duplicates

SQL> CREATE OR REPLACE TYPE list IS TABLE OF NUMBER;   2  / Type created. SQL> SQL> CREATE OR REPLACE FUNCTION format_list(set_in LIST) RETURN VARCHAR2 IS   2    returnValue VARCHAR2(2000);   3  BEGIN   4      FOR i IN set_in.FIRST..set_in.LAST LOOP   5            returnValue := set_in(i)||' ';   6      END LOOP;   7      RETURN returnValue;   8  END format_list;   9  / Function created. SQL> SQL> DECLARE   2    a LIST := list(1,2,3,4);   3    b LIST := list(4,5,6,7);   4  BEGIN   5    dbms_output.put_line(format_list(SET(a MULTISET UNION b)));   6  END;   7  / 7 PL/SQL procedure successfully completed. SQL>