Mega Code Archive

 
Categories / Oracle PLSQL Tutorial / Collections
 

For index between first and last

SQL> SQL> CREATE OR REPLACE TYPE strings_nt IS TABLE OF VARCHAR2(100);   2  / Type created. SQL> SQL> CREATE OR REPLACE PACKAGE employees_pkg   2  IS   3     vancouver_employees strings_nt := strings_nt ('R', 'H', 'D', 'S', 'C');   4     newyork_employees   strings_nt := strings_nt ('H', 'S', 'A');   5     boston_employees    strings_nt := strings_nt ('S', 'D');   6   7     PROCEDURE show_employees (   8        title_in   IN   VARCHAR2   9      , employees_in    IN   strings_nt  10     );  11  END;  12  / Package created. SQL> SHO ERR No errors. SQL> SQL> CREATE OR REPLACE PACKAGE BODY employees_pkg   2  IS   3     PROCEDURE show_employees (   4        title_in   IN   VARCHAR2   5      , employees_in    IN   strings_nt   6     )   7     IS   8     BEGIN   9        DBMS_OUTPUT.put_line (title_in);  10  11        FOR indx IN employees_in.FIRST .. employees_in.LAST  12        LOOP  13           DBMS_OUTPUT.put_line (indx || ' = ' || employees_in (indx));  14        END LOOP;  15  16        DBMS_OUTPUT.put_line ('_');  17     END show_employees;  18  END;  19  / Package body created. SQL> SHOw error No errors. SQL> SQL> DECLARE   2     distinct_employees strings_nt := strings_nt ();   3   4     PROCEDURE bpl (val IN BOOLEAN, str IN VARCHAR2)   5     IS   6     BEGIN   7        IF val   8        THEN   9           DBMS_OUTPUT.put_line (str || '-TRUE');  10        ELSIF NOT val  11        THEN  12           DBMS_OUTPUT.put_line (str || '-FALSE');  13        ELSE  14           DBMS_OUTPUT.put_line (str || '-NULL');  15        END IF;  16     END;  17  BEGIN  18  19     employees_pkg.vancouver_employees.EXTEND;  20     employees_pkg.vancouver_employees(employees_pkg.vancouver_employees.LAST) := 'ROBERT HARRIS';  21  22     distinct_employees := SET (employees_pkg.vancouver_employees);  23  24     employees_pkg.show_employees ('FULL SET', employees_pkg.vancouver_employees);  25  26     bpl (employees_pkg.vancouver_employees IS A SET, 'My employees distinct?');  27     bpl (employees_pkg.vancouver_employees IS NOT A SET, 'My employees NOT distinct?');  28  29     employees_pkg.show_employees ('DISTINCT SET', distinct_employees);  30  31     bpl (distinct_employees IS A SET, 'SET of employees distinct?');  32     bpl (distinct_employees IS NOT A SET, 'SET of employees NOT distinct?');  33     DBMS_OUTPUT.PUT_LINE ('');  34  35  END;  36  / PL/SQL procedure successfully completed. SQL>