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

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

Мова PL/SQL. Пакети та пакетовані процедури і функції. Порівняння власних і спільних об’єктів. Перекриття імен.

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

Помимо этого, в пакетах есть немаловажный плюс – подпрограммы в них могут быть общими, то есть видимыми и доступными. Их могут вызвать привилегированные пользователи пакета, их могут использовать извне, если у пользователя есть привилегия на команду EXECUTE.

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

Перекрытие имен

PL/SQL позволяет вам ПЕРЕКРЫВАТЬ имена подпрограмм. Иными словами, можно использовать одно и то же имя для нескольких различных подпрограмм, если только их формальные параметры различаются по количеству, порядку или семействам типов данных.        

  • Перекрывающиеся имена подпрограмм могут появляться только в блоке, подпрограмме или пакете.
  • Нельзя перекрывать две подпрограммы, если их формальные параметры различаются лишь именами или модами параметров.
  • Перекрывать две подпрограммы, если их формальные параметры различаются лишь типами данных, при чем эти типы данных относятся к одному и тому же семейству.
  • Перекрывать две функции, если они различаются лишь типом данных результирующего значения, даже если они относятся к разным семействам.

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