Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Создание простой хранимой процедуры

Создание простой хранимой процедурыВ приводимой в качестве примера хранимой процедуре реализована следующая бизнеслогика. В таблицу PRODUCT базы данных ACME часто вводятся новые товары. Проблема состоит в следующем: клерки часто дублируют названия товаров, используя разные комбинации букв верхнего и нижнего регистров. К примеру, товары SPRUCE LUMBER 2X4X22, spruce lumber 2X4X22 и Spruce Lumber 2X4X22 должны были бы быть одной записью, но могут быть введены как три разные сущности с разными первичными ключами, на которые ссылаются внешние ключи других таблиц. Все это может вызвать проблемы, связанные с целостностью и согласованностью данных. Процедура SP_PRODUCTADD вставляет строку в таблицу PRODUCT, если товар с таким названием не существует, или обновляет существующую запись обновленными значениями. Она принимает десять параметров, по одному для каждого столбца таблицы PRODUCT, затем проверяет наличие товара с таким же названием (в верхнем и нижнем регистре), после чего выполняет соответствующее действие (INSERT или UPDATE). Типичная хранимая процедура в Oracle состоит из заголовка, раздела объявлений, тела и раздела обработки исключений. Заголовок, находящийся между ключевыми словами CREATE и IS, содержит имена параметров и типы данных. Локальные переменные определяются в разделе объявлений. В теле содержится логика процедуры, за которой следует необязательный раздел обработки исключений — ошибок, которые могут возникнуть при выполнении процедуры. Ниже приведен синтаксис, реализующий эту логику. Вы, наверное, заметили некоторые отличия между синтаксисами Oracle (и DB2) и Microsoft SQL Server в терминах их процедурных расширений SQL. К примеру, в Microsoft SQL Server аргументы не заключаются в скобки; обработка ошибок осуществляется по-другому, переменные содержат префикс @ и т. д. Данная хранимая процедура может быть скомпилирована с помощью утилиты командной строки SQLCMD, Query Analyzer или другой программы, совместимой с Microsoft SQL Server. Для выполнения данной хранимой процедуры используется следующий синтаксис.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *