Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Пояснения к выполнению работы. Для освоения программирования хранимых процедур используем пример базы данных в табличном пространстве DB_Books
Для освоения программирования хранимых процедур используем пример базы данных в табличном пространстве DB_Books, которая была создана в лабораторной работе №1. При выполнении примеров и заданий обращайте внимание на соответствие названий таблиц и других объектов проекта. Хранимые процедуры представляют собой набор команд, состоящий из одного или нескольких операторов SQL или функций и сохраняемый в базе данных в откомпилированном виде. Процедуры и функции - это объекты базы данных и, следовательно, они создаются командой CREATE и уничтожаются командой DROP. При создании процедуры и функции должны быть определены: имя объекта, перечень и типы параметров и логикаработы процедуры или функции, описанные на языке PL/SQL. Чтобы создать процедуру или функцию, необходимо иметь системные привилегии CREATE PROCEDURE. Для создания процедуры, функции или пакета в схеме, отличной от текущей схемы пользователя, требуются системные привила на CREATE ANY PROCEDURE. После определения имени новой процедуры или функции необходимо задать ее имена, типы и виды параметров. Для каждого параметра должен быть указан один из видов параметра - IN, OUT или IN OUT. Вид параметра IN предполагает, что значение параметра должно быть определено при обращении к процедуре и не изменяется процедурой. Попытка изменить в теле процедуры параметрвида IN приведет к сообщению об ошибке. Вид параметра OUT предполагает изменение значения параметра в процессе работы процедуры, то есть параметр вида OUT - это возвращаемый параметр. Параметр INOUT - это параметр, которому при вызове должно быть присвоено значение, которое может быть изменено в теле процедуры. Параметры процедур или функций имеют виды, присвоенные по умолчанию. Дополнительно к определениям, необходимым для процедуры, в определении функции должен быть тип данных единственного возвращаемого функцией значения. Возврат значения функции выполняется командой PL/SQL RETURN. Оператор определения процедуры Oracle использует следующий синтаксис:
CREATE [OR REPLACE] PROCEDURE [ имя_схемы. ] имя_процедуры [ (имя_параметра [{IN | OUT | IN OUT}] тип_данных [, имя_параметра [{IN | OUT | IN OUT}] тип_данных... ])] {IS | AS} программа_нa_PL/SQL
Напоминание: При классическом описании синтаксиса { } обозначают обязательный выбор одной из альтернатив, | – разделяет альтернативы, [ ] – указывают на необязательные параметры, которые могут быть опущены.
Ключевое слово OR REPLACE указывает на безусловное замещение старого текста процедуры. Если ключевое слово OR REPLACE не указано, и процедура определена, то замещения старого значения кода процедуры не происходит, и возвращается сообщение об ошибке. В описании переменных процедуры не используется ключевое слово DECLARE. Блок определения данных начинается сразу после ключевого слова AS (или IS – по выбору пользователя).
Напомним, что функции PL/SQL отличаются от процедур тем, что возвращают в вызывающую среду значение параметра. Оператор определения функции Oracle использует следующий синтаксис:
CREATE [OR REPLACE] FUNCTION [ имя_схемы. ] имя_функции [ (имя_параметра [{IN | OUT | IN OUT}] тип_данных [, имя_параметра [{IN | OUT | IN OUT}] тип_данных... ])] RETURN тип_данных {IS | AS} программа_нa_PL/SQL
Описание типа данных для возвращаемою функцией значения требуется обязательно. При описании переменных функции также, как и при описании переменных процедуры, не используется ключевое слово DECLARE. Блок определения данных начинается сразу после ключевого слова IS (или AS, по выбору пользователя).
|