如何在同一个匿名 pl/sql 块中删除函数和过程?

How do i drop a function and a procedure in the same anonymous pl/sql block?

我有这个程序:

 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;

我收到这个 error:PLS-00103:在期望以下之一时遇到符号 "DROP":

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;