АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Объявления

Читайте также:
  1. ОБЪЯВЛЕНИЯ... Недостающие слова
  2. Подг: Напишите свои объявления, сделайте 10 копий и положите в конверты. На них напишите «новости»
  3. Понятие дивиденда. Порядок объявления и выплаты дивидендов
  4. Порядок объявления результатов.
  5. Порядок, условия и правовые последствия признания гражданина безвестно отсутствующим и объявления его умершим
  6. Функции. Объявления, вызов, передача параметров в функцию.
  7. Штатах (ст. 356) и объявления чрезвычайного положения в области

В блоке программ 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.

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)