русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Хранимые процедуры


Дата добавления: 2015-07-09; просмотров: 458; Нарушение авторских прав


Хранимая процедура – это программа, написанная на языке SQL и хранящаяся на SQL сервере как часть данных в виде некоторого объекта с указанным именем. По имени процедуру можно вызвать для выполнения и получить от нее результат. Как и на другие объекты базы данных, на процедуру распространяется механизм прав использования.

SQL оператор create procedure создает новую процедуру, которая сохраняется на сервере. Оператор не описывает создаваемую процедуру, а реально создает ее, занося информацию о процедуре в базу данных. Запрос на создание процедуры, полученный от пользователя, компилируется, затем компонуется с процедурами, используемыми в запросе, и, наконец, выполняется. Процедуру, которая будет создаваться в запросе, в этом запросе вызвать нельзя – во время компоновки процедура еще отсутствует в базе данных.

Формат:

create procedure Имя_процедуры ( [ Параметр , ...] )
[ user { current | default } ] as
[ Определение_локальных_переменных ... ]
begin
{ Тело_процедуры };
end;

Параметр ::=
Имя_параметра [ in | out | inout ]

Определение_локальных_переменных ::=
declare variable Имя_переменной [ = Выражение ], ...;

Аргументы:

Аргумент Значение
Имя_процедуры Задает имя процедуры. Имя процедуры должно содержать буквы и цифры, должно начинаться с буквы и должно быть не длиннее 31 символа. Имена процедур должны быть уникальными и не должны совпадать с зарезервированными словами.
Параметры Необязательная конструкция, которая задает имена параметров и тип вызова. Все параметры должны иметь уникальные имена. Конструкция out используется для выходных параметров и задает вызов по ссылке. Конструкция inout эквивалентна конструкции out и также задает вызов по ссылке. Конструкция in определяет входной параметр, для него действует вызов по значению.
Тело процедуры Тело процедуры описывает те действия, которые необходимо выполнить при вызове процедуры.
user current Необязательный параметр, который задает права, которые будут использоваться внутри процедуры. Если задана конструкция user current, то внутри процедуры действуют права пользователя, который создал процедуру.
user default Необязательный параметр, который задает права, которые будут использоваться внутри процедуры. Если задана конструкция user default, то внутри процедуры будут действовать права, действовавшие до вызова процедуры.
Определение_локальных_переменных См. подробнее в разделе «Переменные».

Ограничения:



· Максимальное количество параметров в процедуре – 31;

· Параметры, передаваемые по ссылке, нельзя использовать в запросах внутри процедуры, в частности в конструкции where. Чтобы обойти это ограничение, достаточно объявить в процедуре локальную переменную и присвоить ей значение параметра. Эту локальную переменную и следует использовать в запросах.

Пример:

Создать процедуру, которая вычисляет факториал от некоторого числа.

create procedure scFact(x) as
declare variable @i = 1, @f = 1;
{
while(@i <= x)
{
@f = @f * @i;
@i = @i + 1;
}
return @f;
};

SQL оператор drop procedure удаляет существующую процедуру. Удаляемая процедура задается своим именем.

Формат:

drop procedure Имя_процедуры [ cascade | restrict ];

Аргументы:

Аргумент Значение
Имя_процедуры Задает имя удаляемой процедуры. Процедура с указанным именем должна быть создана оператором create procedure.
cascade Если задано ключевое слово cascade, то при удалении процедуры удалятся и все связанные с ней объекты. В текущей реализации таких объектов нет.
restrict Если указано ключевое слово restrict и есть связанные с процедурой объекты, то операция завершится с ошибкой.

Пример:

Удалить процедуру scFact со всеми объектами:

drop procedure scFact cascade;



<== предыдущая лекция | следующая лекция ==>
Оператор цикла с постусловием | Функции


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.683 сек.