Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
baz_dan / Главы13.doc
Скачиваний:
60
Добавлен:
12.03.2015
Размер:
321.02 Кб
Скачать

13.6. Процедуры и функции

Процедуры и функции – это именованные блоки PL/SQL. Их также называют подпрограммами. Они компилируются и хранятся в базе данных. Анонимные блоки, рассмотренные ранее – это неименованные блоки. Они после выполнения не сохраняются для последующего повторного использования.

Синтаксис процедуры:

CREATE [OR REPLACE] PROCEDURE имя_процедуры

[(аргумент1 [тип_параметра1] тип_данных1,

[(аргумент2 [тип_параметра2] тип_данных2, . . .)]

IS|AS

тело_процедуры;

Вызов процедуры в анонимном блоке можно осуществить по имени:

Begin

Имя_процедуры;

END;

Процедуру можно также вызвать с помощью команды CALL:

CALL <имя_процедуры>

Пример. Пусть имеется таблица DEPARTAMENTS – Компании

D.DEPARTAMENTS(D_ID, D_Name, Manager_ID, Location_ID)

Создадим процедуру с именем add_dept вставки новой строки с указанием номера отдела и наименованием.

CREATE PROCEDURE add_dept IS

Dept_id D.D_ID%TYPE;

Dept_name D.D_Name%TYPE

BEGIN

Dept_id:=330;

Dept_name:=”АСОИУ”;

INSERT INTO D(D_ID, D_Name)

VALUES(Dept_id, dept_name);

DBMS_OUTPUT.PUT_LINE(‘Введена’|| SQL%ROWCOUNT|| ‘строка’);

END;

В декларативной секции процедуры объявлены две переменные Dept_id и Dept_name. Декларативная секция следует сразу за объявлением процедуры и не начинается с ключевого слова DECLARE. Для проверки вставки строки используется атрибут неявного курсора SQL%ROWCOUNT. В данном случае получим значение равное 1.

Вызов процедуры

BEGIN

add_dept;

END;

Функция создается следующим образом:

CREATE [OR REPLACE] FUNCTION имя_функции

[(аргумент1 [тип_параметра1] тип_данных1,

[(аргумент2 [тип_параметра2] тип_данных2, . . .)]

RETURN тип_данных

IS|AS

тело_функции;

Вызываемая функция просто вставляется в исполняемую секцию анонимного блока.

База данных Oracle используется в качестве процессора для Интернета. Тот факт, что Интернет функционирует 24 часа в сутки, является громадным достоинством Oracle по доступности к базам данных в любое время суток.

Вопросы

  1. Назовите 5 основных продуктов ORACLE.

  2. Основные блоки программ PL/SQL.

  3. В чем отличие анонимных блоков от именованных.

  4. Основные переменные PL/SQL.

  5. Как производится инициализация переменных.

  6. Назовите основные команды управления в PL/SQL.

  7. Циклы программ.

  8. Как производится однострочная выборка из базы данных.

  9. Для чего используется понятие «курсор».

Соседние файлы в папке baz_dan