Oracle v $session,v$mystat выдает ошибку: таблица или представление не существует при выборе

Aug 18 2020

У меня есть этот оператор выбора в процедуре внутри пакета

select distinct sid into a from v$mystat;

SELECT PADDR,TERMINAL,SID,SERIAL# INTO CURSES,CURTER,CURSID,CURSER from v$session where sid=a;

Эти два оператора возвращают ошибку

PL / SQL: инструкция SQL игнорируется, PL / SQL: ORA-00942: таблица или представление не существует

Эта ошибка возникает внутри процедуры, но я могу запускать эти операторы индивидуально из sqlplus или на листе sql для одного и того же пользователя.

Я попытался предоставить привилегию с помощью ключевого слова grant, но ниже выдал ошибку. Есть ли у вас какое-нибудь возможное решение?

Версия Oracle: 12c Enterprise Edition Release 12.2.0.1.0 - 64-разрядная производственная версия

Ответы

1 Plirkee Aug 18 2020 at 14:34

Вы должны предоставить select v_$sessionдля объекта, стоящего за v$sessionсинонимом.

То же самое с V_$MYSTATобъектом для v$mystatсинонима.

GRANT SELECT ON V_$MYSTAT TO <user> GRANT SELECT ON v_$session TO <user>