Mega Code Archive

 
Categories / Oracle PLSQL / PL SQL
 

Count only the unique values by combining the CARDINALITY and SET operators

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,3,4,4);   3  BEGIN   4    dbms_output.put_line(CARDINALITY(SET(a)));   5  END;   6  / 4 PL/SQL procedure successfully completed. SQL> SQL>