что формальный параметр является входным,
IN - обозначает, что формальный параметр является входным, т. е. передающим значение процедуре; OUT - формальный параметр является выходным, т.е. посредством его осуществляется передача одного из результатов работы хранимой процедуры вызывающему программному объекту; INOUT - формальный параметр процедуры, выполняет роль как входного, так выходного параметра.
В процедуре
Ins_absent используются только входные параметры. Тип данных каждого формального параметра должен соответствовать одному из типов данных, поддерживаемых SQL Anywhere ().
Вызов хранимых процедур производится оператором
CALL с соответствующими фактическими параметрами.
Установим соединение с в утилите ISQL и обратимся к процедуре
Ins_absent следующим образом:
//Вызов процедуры на исполнение CALL Ins_absent (1001, 25)
После этого при помощи оператора
SELECT просмотрим содержимое таблицы
Stepanov.Absent, чтобы удостовериться в работоспособности процедуры
Ins_absent:
//Просмотр таблицы Stepanov.Absent //для проверки внесенных изменений SELECT * FROM Stepanov.Absent WHERE N_books>1000 AND N_books<1050
Теперь вернем базу данных в исходное состояние при помощи оператора
ROLLBACK.
При определении хранимых процедур, помимо явного указания значений фактических параметров, имеется возможность использования значений параметров по умолчанию. В связи с этим, текст процедуры
Ins_absent может быть видоизменен в части определения значения по умолчанию для параметра, задающего дату, когда должна быть возвращена книга (поле
Absent.End_date). Это позволит в отдельных случаях предоставлять право пользования книгой менее 15 дней для дефицитных книг или более этого срока в исключительных случаях. Присвоим этому параметру имя
par_End_date.
Тексты хранимых процедур в базе данных содержатся в системной таблице
SYS.SYSPROCEDURE. Для получения текста процедуры
Ins_absent необходимо выполнить следующие операторы:
//Получение текста хранимой процедуры SELECT SYSPROCEDURE.Proc_defn FROM SYS.SYSPROCEDURE /* Связь с другой таблицы если необходимо использовать имя владельца */ //KEY JOIN SYS.SYSUSERPERM WHERE SYSPROCEDURE.Proc_name
Содержание Назад Вперед