Объявление с привязкой - объявление типа данных с привязкой к какому-то объекту. Например, к строке таблицы/курсора (%rowtype) или типу колонки/переменной (%type).
Особенности:
- Привязка происходит на стадии компиляции.
- Не приводит к увеличению времени выполнения.
- При изменении привязываемого элемента - код станет INVALID. Нужно выполнить повторную компиляцию.
- Ограничения/default-значения столбцов не транслируются в переменную.
Плюсы использования:
1. Синхронизация со структурами в БД - изменилась таблица или тип колонки, изменения сразу же применятся по всему - коду.
2. Нормализация локальных переменных - источник типа из одного места. Момент спорный, в некоторых ситуациях подойдет.
Рекомендация: использовать объявление с привязкой везде, где это возможно.
Пример:
-- Тип строки таблицы
Особенности:
- Привязка происходит на стадии компиляции.
- Не приводит к увеличению времени выполнения.
- При изменении привязываемого элемента - код станет INVALID. Нужно выполнить повторную компиляцию.
- Ограничения/default-значения столбцов не транслируются в переменную.
Плюсы использования:
1. Синхронизация со структурами в БД - изменилась таблица или тип колонки, изменения сразу же применятся по всему - коду.
2. Нормализация локальных переменных - источник типа из одного места. Момент спорный, в некоторых ситуациях подойдет.
Рекомендация: использовать объявление с привязкой везде, где это возможно.
Пример:
-- Тип строки таблицы
v_department_row dep%rowtype;-- Параметры функции привязаны к таблицей
function get_dep_name_by_id (p_id dep.id%type) return dep.name%type is...#теория #type #rowtype
👍2❤1👎1