русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Курсоры, курсорные типы и курсорные переменные


Дата добавления: 2013-12-24; просмотров: 1022; Нарушение авторских прав


ИСПОЛЬЗОВАНИЕ МЕТОДОВ СБОРНЫХ КОНСТРУКЦИЙ СО ВЛОЖЕННЫМИ ТАБЛИЦАМИ И С ИЗМЕНЯЕМЫМИ МАССИВАМИ

ИНИЦИАЛИЗАЦИЯ ВЛОЖЕННЫХ ТАБЛИЦ И ИЗМЕНЯЕМЫХ МАССИВОВ

Особые замечания относительно вложенных таблиц и изменяемых массивов

При работе с вложенными таблицами и изменяемыми массивами необходимо иметь в виду то, что:

• вложенные таблицы могут содержать любое число строк; размер таблицы может увеличиваться или уменьшаться динамически;

• число строк в изменяемых массивах постоянно, т.е. ограничено;

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

• изменяемые массивы должны оставаться плотными. Компоненты изменяемых массивов должны вноситься с использованием последовательных индексов.

Для инициализации вложенной таблицы или изменяемого массива в программе PL/SQL автоматически используется функция – конструктор для соответствующего типа. Функции – конструкторы PL/SQL имеют те же самые имена, что и типы вложенной таблицы или изменяемого массива. Когда в программе вызывается функция – конструктор для инициализации вложенной таблицы или изменяемого массива, можно указать список компонентов таблицы или массива, разделенных запятыми. При инициализации таблицы или массива записей необходимо ограничивать описание каждого компонента внутренними круглыми скобками. Например, в следующем фрагменте программы показано, как инициализировать вложенную таблицу, состоящую из трех компонентов, при её объявлении.

 

declare

type parts_table is table of sales.parts %rowtype;

current_parts_table parts_table := parts_table (

(1, 110.90, ’Samsung C110’),



null,

(3, 1200.00, ‘Network Computer’));

 

Из примера видно, что с помощью ключевого слова NULL можно инициализировать компонент вложенной таблицы, имеющий тип NULL.

 

В PL/SQL используется несколько различных методов сборных конструкций (collection methods), применяемых в программах для работы с вложенными таблицами и с изменяемыми массивами. В таблице 3 приведен список методов сборных конструкций, доступных в PL/SQL.

 

Таблица 3 Методы сборных конструкций

Метод Описание
EXISTS(x) Возвращает TRUE, если существует x-й элемент вложенной таблицы или изменяемого массива. В противном случае возвращает FALSE.
COUNT Возвращает число элементов, находящихся в данный момент во вложенной таблице или в изменяемом массиве.
LIMIT Возвращает максимальное число элементов, которое может содержать изменяемый массив.
FIRST Возвращает первый компонент вложенной таблицы или изменяемого массива.
LAST Возвращает последний компонент вложенной таблицы или изменяемого массива.
PRIOR(x) Возвращает компонент, предшествующий x-тому компоненту вложенной таблицы или изменяемого массива.
NEXT(x) Возвращает компонент, следующий за x-м компонентом вложенной таблицы или изменяемого массива.
EXTEND(x,y) Добавляет x копий y-го элемента вложенной таблицы или изменяемого массива.
TRIM(x) “Вырезает” x элементов с конца вложенной таблицы или изменяемого массива.
DELETE(x) Удаляет некоторые или все элементы вложенной таблицы или изменяемого массива.

 

Для использования какого-либо метода сборных конструкций в операторе PL/SQL задается имя сборной конструкции (вложенной таблицы или изменяемого массива) с указанием в качестве суффикса (при помощи уточняющей записи через точку) метода сборных конструкций. В следующих операторах PL/SQL применяются методы сборных конструкций:

 

record_count := current_parts_table.count;

current_parts_record := current_parts_table.first;

current_parts_table.delete(3);

current_parts_table.delete(4,6);

current_parts_table.delete;

В литературе [2] курсоры иногда называют рабочей областью SQL – оператора. Однако точнее его можно определить как указатель на текущую строку результирующего множества оператора (рабочей области). В интерфейсе ODBC смысл курсора именно такой. Для PL/SQL вполне может подойти и определение курсора как рабочей области 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.

После объявления курсора программа PL/SQL может открывать и выбирать записи в курсоре для поочередной обработки конкретных строк информации баз данных.

 

 



<== предыдущая лекция | следующая лекция ==>
Атрибуты | Управление выполнением программ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.144 сек.