PL SQL Statements 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
  6  );
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 boolean_aat IS TABLE OF BOOLEAN
  7        INDEX BY PLS_INTEGER;
  8
  9     l_employee_indices   boolean_aat;
 10  BEGIN
 11     l_employees (1) := 7839;
 12     l_employees (100) := 7654;
 13     l_employees (500) := 7950;
 14     --
 15     l_employee_indices (1) := TRUE;
 16     l_employee_indices (500) := TRUE;
 17     l_employee_indices (799) := TRUE;
 18     --
 19     FORALL l_index IN INDICES OF l_employee_indices
 20        BETWEEN 1 AND 500
 21        UPDATE employee
 22           SET salary = 10000
 23         WHERE employee_id = l_employees (l_index);
 24  END;
 25  /
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>