пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Программирование в интернет:
» ПИ
» ОКГТМ
» КИНФС

Мова PL/SQL. Курсори. Оператори OPEN, FETCH, CLOSE для керування курсорами.

Курсор – это переменная, состоящая из строк некоторой таблицы или результата запроса. Сформировав курсор, можно в программе читать и обрабатывать каждую строку курсора. Если курсор построен на основе таблицы, то можно модифицировать и удалять текущую позицию курсора.

Открытие курсора предложением OPEN исполняет предложение SELECT и идентифицирует АКТИВНОЕ МНОЖЕСТВО, т.е. все строки, удовлетворяющие поисковым условиям запроса. Для курсоров, объявленных с фразой FOR UPDATE, предложение OPEN также осуществляет блокировку этих строк. Пример предложения OPEN: OPEN c1;

Предложение OPEN не извлекает строк активного множества. Для этого используется предложение FETCH. Курсору могут быть переданы параметры при открытии. Например, при объявлении курсора CURSOR c1 (my_ename CHAR, my_comm NUMBER) IS SELECT любое из следующих предложений открывает этот курсор:

  • OPEN c1('ATTLEY', 300);
  • OPEN c1(employee_name, 150);
  • OPEN c1('THURSTON', my_comm);

Предложение FETCH извлекает очередную строку из активного множества. При каждом выполнении FETCH курсор продвигается к следующей строке в активном множестве. Пример предложения FETCH

FETCH c1 INTO my_empno, my_ename, my_deptno;

Для каждого значения столбца, извлекаемого запросом, ассоциированного с курсором, в списке INTO должна быть соответствующая переменная, имеющая совместимый с этим столбцом тип данных. Обычно вы используете не индивидуальные переменные, а запись:

  1. OPEN c1;
  2. LOOP
  3. FETCH c1 INTO my_record;
  4. EXIT WHEN c1%NOTFOUND;
  5. -- обработать извлеченные данные
  6. END LOOP;

Предложение CLOSE деактивирует курсор, и активное множество становится неопределенным. Пример предложения CLOSE:

CLOSE c1;

После того, как курсор закрыт, его можно снова открыть.


21.01.2016; 19:38
хиты: 76
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь