我以 sysdba 身份连接到 oracle 并运行它
但是为什么在使用调用者权限调用时它会失败?那是 p_user 调用。
这是代码:
alter session set current_schema=x;
CREATE or replace package p_definer as
procedure d(name_ varchar2);
end;
/
CREATE or replace package p_user authid current_user as
procedure d(name_ varchar2);
end;
/
CREATE or replace package body p_definer as
procedure d(name_ varchar2) as
begin
execute immediate 'drop procedure '||name_;
end;
end;
/
CREATE or replace package body p_user as
procedure d(name_ varchar2) as
begin
execute immediate 'drop procedure '||name_;
end;
end;
/
create or replace …
Run Code Online (Sandbox Code Playgroud) oracle ×1