Oracle
 sql >> Base de données >  >> RDS >> Oracle

PL/SQL :ORA-00942 :la table ou la vue n'existe pas V$SQL

Les tables liées au dictionnaire de base de données ou système (v_$sql dans ce cas) appartiennent à Oracle sys utilisateur et a besoin de privilèges spéciaux pour y accéder. Vous devez vous connecter à la base de données oracle en tant qu'sysdba user ou obtenez ces privilèges (votre administrateur de base de données peut vous aider) pour accéder aux vues du dictionnaire de données.

Comme mentionné dans cet article

The problem is that procedures don't respect roles; only directly granted rights 
are respected. So, that means that table_owner has to regrant the right to select

Alors, essayez ce qui suit pour accorder le SELECT sur toutes les vues de dictionnaire afin que vous puissiez l'utiliser dans vos blocs pl/sql.

grant select any dictionary to USERNAME