Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб.практикум_отредакт..doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
557.57 Кб
Скачать

Объявления

В блоке программ PL/SQL можно объявлять конструкции различных типов. Рассмотрим, как объявляются переменные и константы; подтипы, определяемые пользователями; курсоры.

Переменные и именованные константы могут иметь любой тип данных ORACLE или ANSI/ISO. В следующем примере объявляются переменная и именованная константа при помощи ANSI – типа integer:

declare

id integer;

standard constant integer :=500;

Когда в программе объявляется переменная, ей может быть присвоено начальное значение, либо значение по умолчанию:

declare

id integer:=0;

standard integer default 500;

Подтипы, определяемые пользователями. Пример объявления пользовательских подтипов и соответствующих переменных удобно пояснить на примере:

declare

varchar2_50 varchar2(50);

subtype description is varchar2_50;

current_description description default ‘unknown’

Тип varchar2() – тип данных ORACLE, предназначенный для задания строковых переменных переменной длины.

Атрибуты В программах PL/SQL можно использовать атрибуты %type и %rowtype . Данные атрибуты используются для объявления переменных, констант и даже определяемых пользователями подтипов и составных типов, соответствующих свойствам столбцов и таблиц баз данных. Использование атрибутов не только упрощает объявление программных конструкций, но и делает программы более удобными для модификации баз данных.

К примеру, с помощью атрибута %type можно объявлять тип данных, принадлежащий другой программной конструкции или столбцу таблицы базы данных.

declare

id parts.id %type;

unit_price parts.price %type;

В приведенном выше фрагменте предполагается, что parts является таблицей базы данных, а id и price её атрибутами.

С помощью атрибута %rowtype можно объявлять переменные, имеющие тип записи, и другие конструкции:

declare

type parts_table is table of parts %rowtype;

current_part parts_table;

Здесь объявляется “агрегированный” тип parts_table и переменная current_part этого типа.

Курсоры. В литературе [2] курсоры иногда называют рабочей областью SQL-оператора. Однако точнее его можно определить как указатель на текущую строку результирующего множества оператора. Операторы select, возвращающие одну строку, обрабатываются СУБД автоматически, т. е. она сама создаёт курсор и считывает данные посредством него из результирующего вектора. Для обработки строк запроса, возвращающего несколько строк, приложение должно объявлять курсор явно, указав его имя, а затем ссылаться на него при обработке строк по очереди. При обработке строк следует иметь в виду, что курсор устанавливается перед первой строкой результирующего множества, сформированного СУБД по выполнении запроса и сохраненного на сервере БД. Следующий пример демонстрирует процедуру объявления курсоров в блоке объявлений программ PL/SQL:

declare

cursor part_cur is select * from parts;

cursor cust_cur (state_id char) is

select id, l_name, f_name, phone

from customers

where state=state_id;

Здесь part_cur – это простой курсор, соответствующий всем строкам и столбцам таблицы parts, cust_cur – пример параметризованного курсора с параметром state_id.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]