Oracle11g 使用Sql ID的过程终止会话
我已经做了手术Oracle11g 使用Sql ID的过程终止会话,oracle11g,oracle10g,Oracle11g,Oracle10g,我已经做了手术 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 '''||
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模式中创建了过程。您需要在V$SESSION上具有选择权限。您需要这些直接(不是通过角色授予的) 要检查您是否具有必要的权限,可以使用SQL/Plus中的“设置角色无”命令:
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>
将v$session上的选择授予
作为SYS的可能副本