Кто может изменить хранимую процедуру?
Выполнить оператор ALTER PROCEDURE могут:
-
Владелец хранимой процедуры;
-
Пользователи с привилегией
ALTER ANY PROCEDURE.
Выполнить оператор ALTER PROCEDURE могут:
Владелец хранимой процедуры;
Пользователи с привилегией ALTER ANY PROCEDURE.
ALTER PROCEDURE GET_EMP_PROJ (
EMP_NO SMALLINT)
RETURNS (
PROJ_ID VARCHAR(20))
AS
BEGIN
FOR SELECT
PROJ_ID
FROM
EMPLOYEE_PROJECT
WHERE
EMP_NO = :emp_no
INTO :proj_id
DO
SUSPEND;
END
CREATE OR ALTER PROCEDUREСоздание новой или изменение существующей хранимой процедуры.
DSQL, ESQL
CREATE OR ALTER PROCEDURE procname [(<inparam> [, <inparam> ...])] [ RETURNS (<outparam> [, <outparam> ...]) ] <routine-body> Подробнее см. CREATE PROCEDURE.
Оператор CREATE OR ALTER PROCEDURE создаёт новую или изменяет существующую хранимую процедуру.Если хранимая процедура не существует, то она будет создана с использованием предложения CREATE PROCEDURE.Если она уже существует, то она будет изменена и откомпилирована, при этом существующие привилегии и зависимости сохраняются.
CREATE OR ALTER PROCEDURE GET_EMP_PROJ (
EMP_NO SMALLINT)
RETURNS (
PROJ_ID VARCHAR(20))
AS
BEGIN
FOR SELECT
PROJ_ID
FROM
EMPLOYEE_PROJECT
WHERE
EMP_NO = :emp_no
INTO :proj_id
DO
SUSPEND;
END
DROP PROCEDUREУдаление существующей хранимой процедуры.
DSQL, ESQL
DROP PROCEDURE procname
| Параметр | Описание |
|---|---|
procname |
Имя хранимой процедуры. |
Оператор DROP PROCEDURE удаляет существующую хранимую процедуру.Если от хранимой процедуры существуют зависимости, то при попытке удаления такой процедуру будет выдана соответствующая ошибка.
Выполнить оператор DROP PROCEDURE могут:
Владелец хранимой процедуры;
Пользователи с привилегией DROP ANY PROCEDURE.
DROP PROCEDURE GET_EMP_PROJ;
RECREATE PROCEDUREСоздание новой или пересоздание существующей хранимой процедуры.
DSQL, ESQL
RECREATE PROCEDURE procname [(<inparam> [, <inparam> ...])] [ RETURNS (<outparam> [, <outparam> ...]) ] <routine-body> Подробнее см. CREATE PROCEDURE.
Оператор RECREATE PROCEDURE создаёт новую или пересоздаёт существующую хранимую процедуру.Если процедура с таким именем уже существует, то оператор попытается удалить её и создать новую процедуру.Операция закончится неудачей при подтверждении транзакции, если процедура имеет зависимости.
|
Note
|
Имейте в виду, что ошибки зависимостей не обнаруживаются до фазы подтверждения транзакции. |
После пересоздания процедуры привилегии на выполнение хранимой процедуры и привилегии самой хранимой процедуры не сохраняются.
RECREATE PROCEDURE GET_EMP_PROJ (
EMP_NO SMALLINT)
RETURNS (
PROJ_ID VARCHAR(20))
AS
BEGIN
FOR SELECT
PROJ_ID
FROM
EMPLOYEE_PROJECT
WHERE
EMP_NO = :emp_no
INTO :proj_id
DO
SUSPEND;
END