Свързаните с речника на базата данни или системните таблици (v_$sql в този случай) са собственост на Oracle sys
потребител и се нуждае от специални привилегии за достъп до тях. Трябва да влезете в базата данни на oracle като sysdba user
или вземете тези привилегии (вашият DBA може да ви помогне с това), за да получите достъп до изгледите на речника на данните.
Както е споменато в тази статия
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
Така че, опитайте следното, за да предоставите SELECT на целия изглед на речника, така че да можете да го използвате във вашите pl/sql блокове.
grant select any dictionary to USERNAME