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>
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>
SQL> drop table employee;
Table dropped.
SQL>
SQL>