Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

PL/SQL:ORA-00942:tabela ou visualização não existe V$SQL


As tabelas de sistema ou relacionadas ao dicionário de banco de dados (v_$sql neste caso) são de propriedade do Oracle sys usuário e precisa de privilégios especiais para acessá-los. Você precisa fazer login no banco de dados Oracle como sysdba user ou obtenha esses privilégios (seu DBA pode ajudá-lo com isso) para obter acesso às visualizações do dicionário de dados.

Conforme mencionado este artigo
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

Portanto, tente o seguinte para conceder o SELECT em todas as visualizações de dicionário para que você possa usá-lo em seus blocos pl/sql.
grant select any dictionary to USERNAME