Forall in value of table of type : Table of Type « Collections « Oracle PL/SQL 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>
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>








26.26.Table of Type
26.26.1.Table of type
26.26.2.Use of PL/SQL tables of types
26.26.3.Use LOOP to output all elements in a table collection
26.26.4.Forall in value of table of type
26.26.5.Table of user-defined types
26.26.6.Select user-defined type into table collection of user-defined types