Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы-ответы (БД экзамен).docx
Скачиваний:
44
Добавлен:
07.04.2021
Размер:
2.35 Mб
Скачать

41. Pl/sql. Курсоры. Курсорный цикл for.

Курсор – это средство извлечения данных из базы данных Oracle. Курсоры содержат определения столбцов и объектов (таблиц, представлений и т.п.) из которых будут извлекаться данные, а также набор критериев, определяющих какие именно строки должны быть выбраны.

Использование курсора в цикле FOR.

Вместо управления курсором операторами OPEN, FETCH и CLOSE язык PL/SQL предоставляет возможность последовательной обработки курсора в цикле FOR.

Цикл FOR с курсором выполняет следующие действия:

  • Неявно объявляет переменную цикла как запись %ROWTYPE.

  • Открывает курсор.

  • При каждой итерации извлекает следующую строку из результирующего набора в поля неявно объявленной записи.

  • По достижении конца результирующего набора закрывает курсор.

Например:

DECLARE

CURSOR c1 IS

SELECT f1, f2 FROM tbl2

WHERE f1 = 10;

BEGIN

- Неявное объявление rec1

FOR rec1 IN c1 LOOP

/* Выбрана следующая

строка таблицы */

INSERT INTO temp_tbl

VALUES (rec1.f2);

END LOOP;

COMMIT;

END;

42. Pl/sql. Хранимые процедуры.

Хранимая процедура (stored procedure) — это программа, которая выполняет некоторые действия с информацией в базе данных и при этом сама хранится в базе данных. В Oracle хранимые процедуры можно писать на языках PL/SQL и Java.

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

Хранимые процедуры используются для многих целей. Хотя админи­страторы баз данных используют их для выполнения рутинных задач ад­министрирования, главной областью их применения являются все же при­ложения баз данных. Эти процедуры могут вызываться из прикладных программ, написанных на таких языках, как Java, С#, С++ или VB.Net, а также из веб-сценариев, написанных на VBScript или JavaScript. Кроме того, эти процедуры можно вызывать в интерактивном режиме из команд­ной оболочки SQL*Plus.

Можно выделить следующие преимущества хранимых процедур:

В отличие от кода приложений, хранимые процедуры никогда не пере­даются на клиентские компьютеры. Она всегда находится в базе данных и выполняются СУБД на том компьютере, где располагается сервер базы данных. Таким образом, они более безопасны, чем распространяемый код приложения, а кроме того, снижают сетевой трафик. Хранимые процеду­ры постепенно становятся предпочтительным режимом реализации логи­ки приложения в сети Интернет и корпоративных интрасетях. Еще одно преимущество хранимых процедур заключается в том, что SQL-операторы в них могут быть оптимизированы компилятором СУБД.

Соседние файлы в предмете Базы данных