Oracle contre$session,v$mystat donne une erreur : la table ou la vue n'existe pas sur la sélection

Aug 18 2020

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

1 Plirkee Aug 18 2020 at 14:34

Vous devez accorder select sur v_$sessionlequel se trouve l'objet derrière le v$sessionsynonyme.

Idem avec V_$MYSTATobjet pour v$mystatsynonyme.

GRANT SELECT ON V_$MYSTAT TO <user>

GRANT SELECT ON v_$session TO <user>