Ошибка PLS-00103 при использовании revoke внутри хранимой процедуры - PullRequest
2 голосов
/ 10 апреля 2020

Кажется, я что-то упустил. Я не могу использовать revoke внутри хранимой процедуры.

CREATE PROCEDURE revokeRight 
AS 
BEGIN
    REVOKE ALL ON Barang FROM WorkerA;
END;

1 Ответ

2 голосов
/ 10 апреля 2020

Вы не можете напрямую использовать оператор REVOKE внутри блока PL / SQL, вам нужно использовать EXECUTE IMMEDIATE :

CREATE or replace PROCEDURE revokeRight 
AS
BEGIN
    EXECUTE IMMEDIATE 'REVOKE ALL ON Barang FROM WorkerA';
END;
/

Я бы не рекомендовал использовать команды DCL внутри PL / SQL для предоставления / отзыва на лету. Вы должны быть осторожны, прежде чем сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...