Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы бд.doc
Скачиваний:
34
Добавлен:
04.11.2018
Размер:
1.37 Mб
Скачать
  1. Структура программы и переменные pl/sql

Программа на PL/SQL состоит из блоков (анонимных или поименованных). Блок может содержать вложенные блоки, называемые иногда подблоками. Общая форма PL/SQL-блока:

DECLARE

-- Описания блока, переменные, типы, курсоры и т. п. (опционально)

BEGIN

-- Непосредственно код программы

EXCEPTION

-- Обработка исключений (опционально)

END;

/* Многострочные

комментарии… */

-- Однострочный комментарий

[Править] Типы данных

Язык PL/SQL поддерживает следующие категории типов:

  • встроенные типы данных, включая коллекции и записи;

    • скалярные;

    • составные;

    • ссылочные;

    • LOB-типы;

  • объектные типы данных.

Операторы управления

  • операторы выбора:

IF - THEN - END IF;

IF - THEN - ELSE - END IF;

IF - THEN - ELSIF - END IF;

CASE - WHEN - THEN - END CASE;

  • операторы цикла:

LOOP - END LOOP;

WHILE - LOOP - END LOOP;

FOR - LOOP - END LOOP;

EXIT;

EXIT WHEN;

  • операторы безусловного перехода:

GOTO;

NULL;

«labels»

  1. Pl/sql. Условные операторы if

Итак, попробуем использовать операторы ветвления. Самым простым в использовании, в PL/SQL является оператор IF. Его основная логическая форма имеет вид:

IF(некоторое условие справедливо) THEN

-- условие справедливо, выполнять это.

ELSE -- условие не выполняется

-- выполнять оператор в этой части.

END IF; -- конец условного оператора.

Первый блок оператора после IF-THEN называется "ПРЕДЫДУЩИМ", а блок следующий за ELSE "ПОСЛЕДУЮЩИМ". Каждый оператор IF-THEN может содержать обрамляющие блоки BEGIN - END, если в этом есть необходимость, так как при записи типа:

IF(некоторое условие справедливо) THEN

-- оператор 1

-- оператор 2

-- оператор 3

-- оператор 4

END IF; -- конец условного оператора.

Можно уверенно сказать, что все четыре оператора выполнятся наверняка!

  1. Pl/sql. Циклы

На сегодня вы уже многое знаете о PL/SQL. Но очень многое еще впереди. Как и во всех языках программирования, в PL/SQL имеются операторы циклов. Их три основных типа:

  1. Безусловные циклы (выполняемые бесконечно)

  2. Интерактивные циклы (FOR)

  3. Условные циклы (WHILE)

Самый простой тип цикла в языке PL/SQL таков:

LOOP

NULL;

END LOOP

/

Но использовать такой цикл нет смысла, да и для экземпляра БД это не безопасно. Для этого необходимо использовать определенные пути выхода из циклов. Их то же три:

  1. EXIT - Безусловный выход из цикла. Используется посредством применения оператора IF.

  2. EXIT WHEN - Выход при выполнении условия.

  3. GOTO - Выход из цикла во внешний контекст.

  1. Pl/sql. Курсоры

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

Курсор — указатель на зарезервированный участок памяти в SGA, где обрабатываются SQL-предложения. Команда SQL загружается в буфер (в кэш-библиотеки). Буфер данных создаётся в разделяемом поле. Существует три основных типа курсоров: неявный, явный и курсорный цикл for.

Неявным называется курсор, в котором команда SQL определена без каких-либо операторов управления курсовом. SQL-запросы могут возвращать только одну строку.

SELECT Count (*) INTO l_emp_count FROM employee;

Неявные курсоры обязательно используются при работе с DELETE, UPDATE и INSERT.

Неявные работают быстрее явных.

Явные курсоры используются, когда ожидается что запрос может вернуть много или ни одной строки. Позволяют выполнить сложную логику при выборке каждой строки. Управление курсорами осуществляет программист в 4 этапа:

  1. Объявление: DECLARE

  2. Открытие: OPEN

  3. Извлечение данных: FETCH (считать строку из множества, определённых курсором).

  4. Закрытие курсора: CLOSE

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]