|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Лабораторная работа № 5. Цель работы –ознакомиться с таким объектом баз данных, как модули, а также с системными модулями DBMS_OUTPUT и DBMS_SQLДинамический SQL Цель работы – ознакомиться с таким объектом баз данных, как модули, а также с системными модулями DBMS_OUTPUT и DBMS_SQL, предназначенных для отладки приложений PL/SQL и написания процедур динамической обработки SQL-операторов.
· Теоретические сведения Перед тем как рассмотреть использование модуля DBMS_SQL для организации “динамических” процедур, следует рассмотреть такие объекты баз данных, как модули.
Модули Модуль (package) – это группа процедур, функций и других конструкций, хранимых вместе в базе данных как одна единица. Модули особенно полезны для компоновки нескольких процедур и функций, имеющих отношение к конкретному приложению баз данных. Модуль состоит из двух частей: описания и тела. ─ Описание модуля определяет интерфейс связи с этим модулем. В описании модуля объявляются все переменные и именованные константы, курсоры, процедуры, функции и другие конструкции модуля, которые необходимо сделать доступными для программ, внешних по отношению к этому модулю. Другими словами, всё объявленное в описании модуля является общим. ─ В теле модуля (package body) определяются все общие процедуры и функции, объявленные в описании модуля. Кроме того, в тело модуля могут включаться определения других конструкций, не указанных в его описании. Такие конструкции модуля являются частными, т. е. доступными только для программ внутри модуля. Ниже приведен пример определения описания модуля и его тела:
сreate or replace package part_mgmt is --глобальная переменная сurrent_part parts %rowtype; --процедуры и функции --insert_part вводит новый элемент ассортимента в таблицу parts --update_part_unitprice обновляет цену элемента ассортимента --delete_part удаляет элемент ассортимента --------------------------------------------------------------------------------- procedure insert_part (part_record parts %rowtype); procedure update_part_unitprice (part_id in integer, new_price in number); procedure delete_part (part_id in integer); end part_mgmt;
сreate or replace package body part_mgmt is procedure insert_part (part_record parts %rowtype) is dup_primary_key exception; begin insert into parts values (part_record.id, part_record.unitprice, part_record.description); exception when dup_ primary_key then raise_application_error (-20001,’Дубликат ID’); when others then raise_application_error (-20002,’Неопределенная ошибка’); end insert_part; ------------------------------------------------------------------------------------ … определение других процедур и функций модуля … end part_mgmt;
Обращение к процедурам и функциям модуля происходит посредством уточняющей записи через точку. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |