Основы языка PL/SQL. Гаршина В.В - 37 стр.

UptoLike

Составители: 

37
3.2. Обработка запросов с использованием курсоров
Для выполнения команд SQL и хранения информации об их обра-
ботке сервер Oracle использует рабочие области, называемые «личными
областями SQL». Курсоры PL/SQL позволяют присвоить имя такой личной
области и обращаться к информации, которая в ней хранится. Курсор
управляет всеми фазами обработки команды. Существуют неявные и яв-
ные курсоры. Функции явных курсоров:
Поочередная обработка строк,
возвращаемых запросом.
Отслеживание текущей обрабатываемой строки.
Ручное управление курсорами в блоке PL/SQL программистом.
Процесс использования курсора можно разделить на следующие ша-
ги (см. рис. 3.1):
1. Описание курсора. Курсор описывается путем присвоения ему
имени и определения структуры запроса, который будет в нем выполняться.
2. Открытие курсора. Команда OPEN выполняет запрос и связывает
все
используемые переменные. Строки, выбранные запросом, называются
активным множеством и доступны теперь для выборки.
3. Выборка данных курсора. Команда FETCH загружает текущую
строку из курсора в переменные. Каждое выполнение команды FETCH пе-
ремещяет указатель курсора на следующую строку активного множества.
Следовательно, каждая команда FETCH получает доступ к разным стро-
кам, выданным запросом.
4. Закрытие
курсора. Команда CLOSE освобождает активное множе-
ство строк. После этого можно вновь открыть курсор для создания нового
активного набора строк.
DECLARE
OPEN
FETCH
CLOSE
EMPTY?
Создание
именованной
рабочей
области SQL
Выявление
активного
набора строк
Загрузка
текущей
строки в
переменные
Проверка на
наличие
строки
Освобождение
активного
набора строк
Да
Нет
Рис. 3.1. Процесс использования курсора
     3.2. Обработка запросов с использованием курсоров

      Для выполнения команд SQL и хранения информации об их обра-
ботке сервер Oracle использует рабочие области, называемые «личными
областями SQL». Курсоры PL/SQL позволяют присвоить имя такой личной
области и обращаться к информации, которая в ней хранится. Курсор
управляет всеми фазами обработки команды. Существуют неявные и яв-
ные курсоры. Функции явных курсоров:
      – Поочередная обработка строк, возвращаемых запросом.
      – Отслеживание текущей обрабатываемой строки.
      – Ручное управление курсорами в блоке PL/SQL программистом.
      Процесс использования курсора можно разделить на следующие ша-
ги (см. рис. 3.1):
      1. Описание курсора. Курсор описывается путем присвоения ему
имени и определения структуры запроса, который будет в нем выполняться.
      2. Открытие курсора. Команда OPEN выполняет запрос и связывает
все используемые переменные. Строки, выбранные запросом, называются
активным множеством и доступны теперь для выборки.
      3. Выборка данных курсора. Команда FETCH загружает текущую
строку из курсора в переменные. Каждое выполнение команды FETCH пе-
ремещяет указатель курсора на следующую строку активного множества.
Следовательно, каждая команда FETCH получает доступ к разным стро-
кам, выданным запросом.
      4. Закрытие курсора. Команда CLOSE освобождает активное множе-
ство строк. После этого можно вновь открыть курсор для создания нового
активного набора строк.

                                                       Нет

                                                              Да
 DECLARE         OPEN            FETCH           EMPTY?             CLOSE

Создание       Выявление       Загрузка
                                                Проверка на        Освобождение
именованной    активного       текущей
                                                наличие            активного
рабочей        набора строк    строки в
                                                строки             набора строк
области SQL                    переменные


                   Рис. 3.1. Процесс использования курсора

                                        37