Индексная таблица - это термин Oracle, обозначающий «ассоциативный массив».Это массивы, которые содержат элементы, к которым можно обращаться (или индексировать) как целое число, так и строку.Вероятно, их так называют из-за использования ключевых слов INDEX BY при определении массива.
Сокращение от примера, приведенного в документации Oracle :
DECLARE
TYPE population_type IS TABLE OF NUMBER INDEX BY VARCHAR2(64);
country_population population_type;
howmany NUMBER;
BEGIN
country_population('Greenland') := 100000; -- Creates new entry
howmany := country_population('Greenland');
...
Вы можете создавать индексированные таблицы, содержащие записи, где записи представляют собой структуру, содержащую несколько типов.Например, запись часто содержит те же типы, что и строка в таблице.
Опять же, из документации Oracle :
DECLARE
TYPE EmpTabTyp IS TABLE OF employees%ROWTYPE
INDEX BY PLS_INTEGER;
emp_tab EmpTabTyp;
BEGIN
/* Retrieve employee record. */
SELECT * INTO emp_tab(100) FROM employees
WHERE employee_id = 100;
END;
Здесь emp_tabтаблица index-by, индексированная целыми числами, содержащая записи сотрудников% ROWTYPE.