Во многих случаях для работы с данными, хранимыми в таблицах базы
данных, используются переменные PL/SQL. При этом переменной, работающей с некоторым столбцом, следует присваивать тип, соответствующий типу столбца. Например, столбец first_name таблицы students имеет тип VARCHAR2(20). С учетом этого можно объявить переменную следующим образом:
Г) DECLARE
v_FirstNameVARCHAR2(20);
Посмотрим, что произойдет, если описание столбца firstjiame изменится. Предположим, что таблица модифицирована и столбец first_name имеет теперь тип VARCHAR2(25). Текст программы PL/SQL, в которой используется этот столбец, должен быть изменен:
Если программа PL/SQL велика, этот процесс может занять много времени, и, кроме того, существует большая вероятность внесения ошибки. В этом случае вместо жесткого задания типа переменной можно воспользоваться атрибутом %TYPE. Он добавляется к ссылке на столбец таблицы или к другой переменной и возвращает ее тип. Например:
При использовании %TYPE переменная v_F-irstName будет иметь тот тип, который присвоен столбцу first_name таблицы students. Тип определяется всякий раз, когда данный блок выполняется для анонимных и именованных блоков и когда компилируются хранимые объекты (процедуры, функции и т.д.). %TYPE может быть также использован с переменными PL/SQL, объявленными ранее. Приведенный ниже пример иллюстрирует различные варианты применения атрибута
Если атрибут применяется для переменной (столбца), которая
(который) содержит ограничение NOT NULL (например, classes. room_id и v_TempVar), то возвращаемый тип не имеет этого ограничения. Приведенный выше блок вполне корректен, хотя переменные v_RoomID, v_RoomID2 и v_AnotherVar не инициализированы. Дело в том, что эти переменные могут содержать
Использование атрибута %TYPE считается хорошим стилем программирования, так как при этом программы PL/SQL становятся гибче и проще адаптируются к изменению различных параметров, задаваемых в базе данных.
< Предыдущая | Следующая > |
---|