Wer kann ein Verfahren ändern
Die Anweisung ALTER PROCEDURE
kann ausgeführt werden durch:
-
Der Besitzer der gespeicherten Prozedur
-
Benutzer mit der Berechtigung
ALTER ANY PROCEDURE
Die Anweisung ALTER PROCEDURE
kann ausgeführt werden durch:
Der Besitzer der gespeicherten Prozedur
Benutzer mit der Berechtigung ALTER ANY PROCEDURE
ALTER PROCEDURE
-BeispielGET_EMP_PROJ
.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
Erstellen einer neuen gespeicherten Prozedur oder Ändern einer vorhandenen Prozedur
DSQL
CREATE OR ALTER PROCEDURE procname [ ( [ <in_params> ] ) ]
[RETURNS (<out_params>)]
{<psql_procedure> | <external-module-body>}
!! Vgl. auch die Syntax CREATE PROCEDURE
für weitere Regeln !!
Die Anweisung "CREATE OR ALTER PROCEDURE" erstellt eine neue gespeicherte Prozedur oder ändert eine vorhandene.Wenn die gespeicherte Prozedur nicht existiert, wird sie durch transparentes Aufrufen einer CREATE PROCEDURE
-Anweisung erstellt.Wenn die Prozedur bereits existiert, wird sie geändert und kompiliert, ohne ihre bestehenden Privilegien und Abhängigkeiten zu beeinträchtigen.
CREATE OR ALTER PROCEDURE
-BeispielGET_EMP_PROJ
.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
Löschen einer gespeicherten Prozedur
DSQL, ESQL
DROP PROCEDURE procname
Parameter | Beschreibung |
---|---|
procname |
Name einer vorhandenen gespeicherten Prozedur |
Die Anweisung DROP PROCEDURE
löscht eine vorhandene gespeicherte Prozedur.Wenn die gespeicherte Prozedur Abhängigkeiten aufweist, schlägt der Versuch, sie zu löschen, fehl und der entsprechende Fehler wird ausgegeben.
Die Anweisung ALTER PROCEDURE
kann ausgeführt werden durch:
Der Besitzer der gespeicherten Prozedur
Benutzer mit dem Privileg DROP ANY PROCEDURE
DROP PROCEDURE
-BeispielGET_EMP_PROJ
.DROP PROCEDURE GET_EMP_PROJ;
RECREATE PROCEDURE
Erstellen einer neuen gespeicherten Prozedur oder Neuerstellen einer vorhandenen Prozedur
DSQL
RECREATE PROCEDURE procname [ ( [ <in_params> ] ) ]
[RETURNS (<out_params>)]
{<psql_procedure> | <external-module-body>}
!! Vgl. auch die Syntax CREATE PROCEDURE
für weitere Regeln !!
Die Anweisung 'RECREATE PROCEDURE' erstellt eine neue gespeicherte Prozedur oder erstellt eine vorhandene neu.Wenn es bereits eine Prozedur mit diesem Namen gibt, versucht die Engine, diese zu löschen und eine neue zu erstellen.Das Neuerstellen einer vorhandenen Prozedur schlägt bei der COMMIT
-Anforderung fehl, wenn die Prozedur Abhängigkeiten hat.
Warning
|
Beachten Sie, dass Abhängigkeitsfehler erst in der |
Nachdem eine Prozedur erfolgreich neu erstellt wurde, werden die Berechtigungen zum Ausführen der gespeicherten Prozedur und die Berechtigungen der gespeicherten Prozedur selbst gelöscht.
RECREATE PROCEDURE
-BeispielGET_EMP_PROJ
oder Neuerstellen der vorhandenen gespeicherten Prozedur GET_EMP_PROJ
.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