DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Использование %TYPE

Во многих случаях для работы с данными, хранимыми в таблицах базы
данных, используются переменные 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 становятся гибче и про­ще адаптируются к изменению различных параметров, задаваемых в базе данных.

 









jAntivirus