Когато нещата работят в анонимни блокове, но не и в съхранени процедури, това обикновено се дължи на правата на дефиниращия спрямо правата на извикващия. Анонимните блокове и процедурите за права на инвокатора могат да използват привилегии, предоставени чрез роли, но процедурите за права на дефиниращите не могат.
Опитайте да промените return varchar2 is
за return varchar2 authid current_user is
.