Разработка приложений баз данных для СУБД Sybase SQL Anywhere


         

Хранимые процедуры - часть 4


//Модификация тела ранее созданной процедуры ALTER PROCEDURE Ins_absent_new /* ... */ ( IN Par_N_books SMALLINT, IN Par_N_reader SMALLINT DEFAULT 48, IN Par_End_date DATE DEFAULT Current date+15 ) BEGIN .............. END

    ПРИМЕЧАНИЕ.

    Для параметра Par_N_books нельзя задать значение по умолчанию. Это связано с тем, что параметр Par_N_books предназначен для указания значения поля Absent.N_books (). Данное поле содержит инвентарный номер выданной книги, который должен быть уникальным , так как один и тот же экземпляр книги не может быть выдан несколько раз. По этой причине для параметра Par_N_books недопустимо задание значения по умолчанию.

    Процедуру Ins_absent_new можно вызвать несколькими способами, некоторые из которых имеют вид:

    /* Примеры вызова процедуры с передачей параметров по умолчанию */ CALL Ins_absent_new(5) // значение пере- // дается только для пара- //метра par_N_books ; CALL Ins_absent_new(255, //через фактические параметры Par_End_date='1997-12-30') // передаются значение для или // параметров Par_N_books CALL Ins_absent_new( // и Par_End_date Par_N_books =255, // - Par_End_date='1997-12-30') //

    Как было сказано ранее, хранимые процедуры записываются в базу данных, откуда они по мере необходимости могут быть удалены. Для удаления таких процедур из базы данных используется оператор DROP PROCEDURE. Например, для удаления процедуры Ins_absent этот оператор используется следующим образом:

    //Удаление процедуры DROP PROCEDURE Ins_absent.

    Пользователь, создавший хранимую процедуру, т.е. ее владелец, имеет доступ к данной процедуре без всяких ограничений. Он может вызывать процедуру на исполнение, модифицировать ее текст или просто удалить ее. Другим же пользователям привилегии на использование такой процедуры, и причем только в части ее вызова, осуществляется оператором GRANT ().

      ПРИМЕЧАНИЕ.

      Кроме владельца процедуры Х, все привилегии по отношению к ней имеют еще и пользователи, наделенные полномочиями администратора базы данных (класс полномочий DBA.). В дополнении к этому, такие пользователи могут при создании процедуры объявить ее владельцем любого другого пользователя.




      Содержание  Назад  Вперед