Как добавить функцию и процедуру в один и тот же анонимный блок pl / sql? - PullRequest
0 голосов
/ 08 мая 2019

У меня есть эта процедура:

 create or replace procedure show_emp
    is
    cursor c is select name,id_funct,date_emp from emp;
...

И эта функция:

create or replace FUNCTION raise(cod_ang INTEGER, sum REAL) 
RETURN VARCHAR
  IS
...

Все правильно реализовано.

Как удалить эту процедуру и эту функцию в анонимном блоке pl / sql? Когда я пытаюсь:

begin
drop procedure show_emp;
drop function raise;
end;

Я получаю эту ошибку: PLS-00103: Обнаружен символ «DROP» при ожидании одного из следующих действий:

1 Ответ

3 голосов
/ 08 мая 2019

drop является оператором DDL, и вы не можете использовать его непосредственно в pl / SQL.

просто сделай

drop procedure show_emp;
drop function raise;

или используйте динамический SQL для выполнения оператора ddl

begin
  execute immediate 'drop procedure show_emp';
  execute immediate 'drop function raise';
end;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...