CREATE TABLE plch_employees
(
employee_id INTEGER PRIMARY KEY,
last_name VARCHAR2 (100) UNIQUE,
salary NUMBER
)
Table created.
BEGIN
INSERT INTO plch_employees
VALUES (100, 'Apramy', 1000);
INSERT INTO plch_employees
VALUES (175, 'Shipo', 2500);
INSERT INTO plch_employees
VALUES (242, 'Inkul', 500);
END;
1 row(s) inserted.
CREATE OR REPLACE PACKAGE plch_arrays
AUTHID DEFINER
IS
TYPE employees_t IS TABLE OF plch_employees%ROWTYPE
INDEX BY PLS_INTEGER;
TYPE emps_by_name_t IS TABLE OF plch_employees%ROWTYPE
INDEX BY plch_employees.last_name%TYPE;
g_employees employees_t;
END;
Package created.
CREATE OR REPLACE PACKAGE BODY plch_arrays
IS
BEGIN
SELECT *
BULK COLLECT INTO g_employees
FROM plch_employees;
END;
Package Body created.
DECLARE
l_employees plch_arrays.employees_t;
BEGIN
SELECT *
BULK COLLECT INTO l_employees
FROM plch_employees;
FOR rec IN ( SELECT *
FROM TABLE (l_employees)
ORDER BY last_name)
LOOP
DBMS_OUTPUT.put_line (rec.last_name);
END LOOP;
END;
Apramy
Inkul
Shipo