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