0

手続きをしました

create or replace PROCEDURE KILLSESSION AS 
BEGIN
for rec in (SELECT sid,serial# 
  FROM v$session 
 WHERE status = 'ACTIVE' 
   AND username ='NCMAIN' 
   AND sql_id ='bzq9gwv2qazpq' ) loop

execute immediate 'Alter System Kill Session '''|| rec.Sid || ',' || rec.Serial# || ''' IMMEDIATE';

 end loop;
END KILLSESSION

テーブルまたはビューが存在せず、ループ変数 rec の使用が無効であるというエラーが表示されます。DBA スキーマにプロシージャを作成しました。

4

1 に答える 1

0

V$SESSION に対する SELECT 権限が必要です。これらは直接必要です (役割を介して付与されるのではありません)。

必要な権限があるかどうかを確認するには、SQL/Plus で「set role none」コマンドを使用できます。

SQL> select count(*) from v$session;
23
SQL> set role none;
Role set
SQL select count(*) from v$session;
ORA-00942 table or view does not exist

それを修正するには、実行します

   GRANT SELECT ON v$session TO <my_dba_user>

SYSとして

于 2013-10-21T10:28:10.250 に答える