Oracle v $session,v$mystatでエラーが発生します:テーブルまたはビューが選択時に存在しません

Aug 18 2020

パッケージ内のプロシージャにこのselectステートメントがあります

select distinct sid into a from v$mystat;

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

これらの2つのステートメントはエラーを返します

PL / SQL:SQL文は無視されました、PL / SQL:ORA-00942:表またはビューは存在しません

このエラーはプロシージャ内で発生していますが、これらのステートメントをsqlplusから個別に実行することも、同じユーザーのsqlワークシートで実行することもできます。

grantキーワードを使用して特権を付与しようとしましたが、以下のエラーが発生しました。考えられる解決策はありますか?

Oracleバージョン:12c EnterpriseEditionリリース12.2.0.1.0-64ビット本番

回答

1 Plirkee Aug 18 2020 at 14:34

同義語のv_$session背後にあるオブジェクトであるselectを付与する必要がありますv$session

同義語のV_$MYSTATオブジェクトと同じv$mystatです。

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