Collections Oracle PLSQL Tutorial

SQL>
SQL> CREATE TABLE employee (
  2     employee_id NUMBER,
  3     last_name VARCHAR2(30),
  4     first_name VARCHAR2(30),
  5     salary NUMBER);
Table created.
SQL> INSERT INTO employee (employee_id, last_name, first_name, salary)VALUES (1, 'G', 'J', 100000);
1 row created.
SQL>
SQL> INSERT INTO employee (employee_id, last_name, first_name, salary)VALUES (2, 'G', 'H', 100000);
1 row created.
SQL>
SQL> SELECT employee_id FROM employee  WHERE salary = 10000;
no rows selected
SQL>
SQL> DECLARE
  2     TYPE employee_aat IS TABLE OF employee.employee_id%TYPE INDEX BY PLS_INTEGER;
  3
  4     l_employees employee_aat;
  5
  6     TYPE indices_aat IS TABLE OF PLS_INTEGER INDEX BY PLS_INTEGER;
  7
  8     l_employee_indices   indices_aat;
  9  BEGIN
 10     l_employees (-77) := 7820;
 11     l_employees (13067) := 7799;
 12     l_employees (99999999) := 7369;
 13     --
 14     l_employee_indices (100) := -77;
 15     l_employee_indices (200) := 99999999;
 16     --
 17     FORALL l_index IN VALUES OF l_employee_indices
 18        UPDATE employee SET salary = 10000
 19         WHERE employee_id = l_employees (l_index);
 20  END;
 21  /
PL/SQL procedure successfully completed.
SQL>
SQL> SELECT employee_id FROM employee  WHERE salary = 10000;
no rows selected
SQL>
SQL> drop table employee;
Table dropped.
SQL>