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

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

Мова PL/SQL. Пакети. Використання пакетованих курсорів.

Пакет – это объект базы данных, который группирует логически связанные типы, программные объекты и подпрограммы PL/SQL. Под пакетом сразу подразумевается две вещи: спецификация пакета и тело пакета. Спецификация пакета – это интерфейс с перечнем приложений, тут объявляются типы, переменные, константы, исключения, курсоры и подпрограммы, доступные для использования в самом пакете. Тело пакета – здесь уже более подробное определение курсоров и подпрограмм, другими словами их реализация. В отличии от подпрограмм, пакеты нельзя вызывать, передавать им какие-либо параметры или вкладывать пакет друг в друга. Простыми словами, можно сказать, что спецификация пакета – это объявления всех необходимых подпрограмм и прочего, а тело пакета – это более детальное описание каждой подпрограммы – их тела.

Если курсор создается в пакете, то его объявление и спецификация могут быть разделены: объявление курсора указывается в секции объявлений пакета, а реализация курсора - в теле пакета.

При помещении курсора в пакет, можно отделить спецификацию курсора от его тела, используя фразу RETURN, что позволяет изменять тело курсора, не затрагивая его спецификацию.

В фразе RETURN можно использовать:

  • атрибут %ROWTYPE, чтобы указать тип записи, которая будет представлять строку в таблице базы данных.
  • атрибут %TYPE, чтобы указать тип данных переменной, константы или столбца базы данных
  • тип данных - запись (RECORD), чтобы указать тип записи, которая будет представлять строку, возвращаемую запросом, ассоциированным с курсором. Тип данных должен быть объявлен ранее.

В спецификации курсора отсутствует предложение SELECT.

Тело курсора должно иметь в себе запрос SELECT и точно такую же фразу RETURN, как в спецификации пакета.

Реализация курсора при создании пакета может иметь следующее формальное описание:

  • CURSOR cursor_name [(parameter
  •    [, parameter]...)]
  • RETURN return_type;

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