问题描述
我的计算机上有 XE,使用 Oracle Database 18c。早些时候,即使我以 sysadmin 或默认角色登录,我也能够执行函数 dbms_output.put_line();
。现在,当我以 sysadmin/sysdba 身份登录时,我只能运行 dbms_output.put_line()
。作为默认用户,我收到以下消息:
PLS-00201: identifier ‘DBMS_OUPUT.PUT_LINE’ must be declared
我尝试添加权限以使用命令执行 dbms_output
grant execute on DBMS_OUTPUT to username;
,但是,当我执行包含 dbms_output.put_line()
的命令时收到此消息:
ORA-04067: not executed,package body "PERFSTAT.DBMS_OUTPUT" does not exist
ORA-06508: PL/sql: Could not find program unit being called: "PERFSTAT.DBMS_OUTPUT"
PLS-00201: identifier 'DBMS_OUTPUT.ENABLE' must be declared
我该如何解决这个问题?
解决方法
那可能是因为你把它命名错了:
No : DBMS_OUPUT.PUT_LINE (not "ouput" but "output")
Yes: DBMS_OUTPUT.PUT_LINE
截至第二条消息;好吧,这个:PERFSTAT.DBMS_OUTPUT
没有意义,PERFSTAT 不拥有那个包。它被称为
begin
dbms_output.put_line('Hello');
end;
/
适用于任何用户,无需特殊资助。