Oracle contre$session,v$mystat donne une erreur : la table ou la vue n'existe pas sur la sélection
J'ai cette instruction select dans une procédure à l'intérieur d'un package
select distinct sid into a from v$mystat;
SELECT PADDR,TERMINAL,SID,SERIAL# INTO CURSES,CURTER,CURSID,CURSER from v$session where sid=a;
Ces deux instructions renvoient l'erreur
PL/SQL : Instruction SQL ignorée, PL/SQL : ORA-00942 : la table ou la vue n'existe pas
Cette erreur se produit dans la procédure, mais je peux exécuter ces instructions individuellement à partir de sqlplus ou dans une feuille de calcul sql chez le même utilisateur.
J'ai essayé de donner le privilège en utilisant le mot-clé grant mais j'ai donné une erreur ci-dessous. Avez-vous une solution possible?

Version Oracle : 12c Enterprise Edition Version 12.2.0.1.0 - Production 64 bits
Réponses
Vous devez accorder select sur v_$session
lequel se trouve l'objet derrière le v$session
synonyme.
Idem avec V_$MYSTAT
objet pour v$mystat
synonyme.
GRANT SELECT ON V_$MYSTAT TO <user>
GRANT SELECT ON v_$session TO <user>