КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Преимущества пакетов
Пакеты Пример Declare stovar mtovar --объявление таблицы типа mtovar из предыдущего примера Begin select post_tovari into stovar from Tabtavari Where kp=1 For i in stovar.first.. stovar.lasr loop post_tovari.cena<1000000 then stovar.delete(i); endif end loop; update Tabtavari set post_tovari=stovar Where kp=1; end; Пакет объединяет логически связанные элементы (типы, объекты, процедуры и функции). Пакет состоит из частей: спецификации и тела. Спецификация создается оператором: Create package <имя пакета> as <объявления общедоступных типов, объектов и подпрограмм> End [<имя пакета>] Тело пакета создается оператором: Create packagebody <имя пакета> as <объявления локальных типов, элементов и подпрограмм> [ Begin <операторы инициализации>] End [<имя пакета>] Для обращения к элементам пакета используются квалифицированные ссылки: <имя_пакета>.<имя элемента>. Для вызова пакетированных подпрограмм, хранимых в удаленной базе данных, используйте следующий синтаксис: <имя_пакета>.<имя подпрограммы>@<имя связи c БД>(<параметр1>,...); Пример. emp_actions.hire_employee@newyork(name, title,...); Модульность. Пакеты позволяют вам инкапсулировать логически связанные типы, объекты и подпрограммы в поименованный модуль PL/SQL. Каждый пакет легко понять, а интерфейсы между пакетами просты, ясны и хорошо определены. Облегчение проектирования. Все, что вам надо изначально знать при проектировании приложения, - это информация интерфейса для спецификации пакета. Вы можете кодировать и компилировать спецификацию без тела. После того как спецификация откомпилирована, хранимые подпрограммы, обращающиеся к пакету, также могут быть откомпилированы. Вы не обязаны полностью определять тела пакетов до тех пор, пока не будете готовы к реализации деталей приложения. Скрытие информации. С помощью пакетов вы можете указывать, какие типы, объекты и подпрограммы являются общими (видимыми и доступными) или личными (скрытыми и недоступными). Пакет скрывает определение личной подпрограммы, так что лишь этот пакет (а не ваши приложения) будет затронут, если это определение изменится. Расширенная функциональность. Пакетированные общие переменные и курсоры продолжают существовать в течение всей сессии. Поэтому они могут совместно использоваться всеми процедурами, выполняющимися в данном окружении. Кроме того, через них можно передавать данные между транзакциями без необходимости записывать их в базу данных. Улучшенная производительность. Когда вы вызываете пакетированную подпрограмму первый раз, в память загружается весь пакет. Поэтому последующие вызовы других подпрограмм этого пакета не требуют операций ввода-вывода. Рекомендации. При написании пакетов старайтесь делать их максимально общими, чтобы их можно было использовать в будущих приложениях. Спецификации пакетов отражают проект вашего приложения. Поэтому определяйте их раньше, чем тела пакетов. Помещайте в спецификации лишь те типы, объекты и подпрограммы, которые должны быть видны пользователям данного пакета. Чтобы уменьшить число требуемых перекомпиляций при изменениях в коде, помещайте в спецификацию пакета как можно меньше элементов. Изменения в теле пакета не требуют перекомпиляции зависимых процедур. Однако при изменении спецификации пакета перекомпилируются все хранимые подпрограммы, обращающиеся к данному пакету.
Дата добавления: 2014-12-10; Просмотров: 542; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |