In PL/SQL, you can create collections to store multiple
values of the same datatype.
There are three main types of collections in PL/SQL:
associative arrays (also known as index-by tables), nested tables, and VARRAYs
(variable-size arrays).
VARRAY
These are
one-dimensional arrays with a fixed upper bound, specified at declaration.
They are
useful when you know the maximum number of elements that will be stored in the
array.
DECLARE
TYPE num_array
IS VARRAY(5) OF NUMBER;
numbers
num_array := num_array(10, 20, 30, 40, 50);
total NUMBER
:= 0;
BEGIN
-- Loop
through the VARRAY
FOR i IN
1..numbers.COUNT LOOP
total :=
total + numbers(i);
END LOOP;
DBMS_OUTPUT.PUT_LINE('Total sum: ' || total);
END;
NESTED TABLE
These are
one-dimensional arrays with no upper bounds.
They are
declared using the TYPE statement and instantiated with the CREATE TYPE
statement.
They behave
similar to database tables and can be used in SQL operations.
DECLARE
TYPE num_list
IS TABLE OF NUMBER;
numbers
num_list := num_list(10, 20, 30, 40, 50);
total NUMBER
:= 0;
BEGIN
-- Loop
through the nested table
FOR i IN
1..numbers.COUNT LOOP
total :=
total + numbers(i);
END LOOP;
DBMS_OUTPUT.PUT_LINE('Total sum: ' || total);
END;
ASSOCIATIVE ARRAY
These are
similar to arrays in other programming languages but are indexed by a unique
key rather than by consecutive integers.
They are
declared using the TYPE statement and accessed using the key value.
DECLARE
TYPE
employee_salary IS TABLE OF NUMBER INDEX BY VARCHAR2(100);
salaries
employee_salary;
BEGIN
salaries('John') := 50000;
salaries('Alice') := 60000;
salaries('Bob') := 55000;
-- Accessing
values
DBMS_OUTPUT.PUT_LINE('John''s salary: ' || salaries('John'));
END;
Comments
Post a Comment