Oracle v$session,v$mystat gives error: table or view does not exist on select

Oracle v$session,v$mystat gives error: table or view does not exist on select

我在包内的过程中有这个 select 语句

select distinct sid into a from v$mystat;

SELECT PADDR,TERMINAL,SID,SERIAL# INTO CURSES,CURTER,CURSID,CURSER from v$session where sid=a;

这两个语句returns错误

PL/SQL: SQL Statement ignored, PL/SQL: ORA-00942: table or view does not exist

此错误发生在程序内部,但我可以 运行 这些语句分别来自 sqlplus 或同一用户的 sql 工作表。

我尝试使用 grant 关键字授予特权,但出现以下错误。你有什么可能的解决方案吗?

Oracle 版本:12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

您应该在 v_$session 上授予 select,这是 v$session 同义词背后的对象。

V_$MYSTAT 对象相同 v$mystat 同义词。

GRANT SELECT ON V_$MYSTAT TO <user>

GRANT SELECT ON v_$session TO <user>