oráculo v$session,v$mystat da error: la tabla o la vista no existe en la selección

Aug 18 2020

Tengo esta declaración de selección en un procedimiento dentro de un paquete

select distinct sid into a from v$mystat;

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

Estas dos declaraciones devuelven el error.

PL/SQL: declaración SQL ignorada, PL/SQL: ORA-00942: tabla o vista no existe

Este error ocurre dentro del procedimiento, pero puedo ejecutar estas declaraciones individualmente desde sqlplus o en una hoja de trabajo sql en el mismo usuario.

Traté de otorgar privilegios usando la palabra clave de concesión, pero di un error a continuación. ¿Tienes alguna solución posible?

Versión de Oracle: 12c Enterprise Edition Release 12.2.0.1.0 - Producción de 64 bits

Respuestas

1 Plirkee Aug 18 2020 at 14:34

Debe otorgar selección sobre v_$sessioncuál es el objeto detrás del v$sessionsinónimo.

Lo mismo con V_$MYSTATobjeto para v$mystatsinónimo.

GRANT SELECT ON V_$MYSTAT TO <user>

GRANT SELECT ON v_$session TO <user>