Mega Code Archive

 
Categories / Oracle PLSQL Tutorial / PL SQL Statements
 

Forall in indices of

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>