估计你SQL 拼接错了吧,建议打印一下;
我的测试过程;
--新建一个会话窗口,挂起一个会话;
SQL> create table test(col varchar2(20));
Table created
SQL> insert into test values('test');
1 row inserted
--再新建一个会话窗口,杀掉锁定test表的会话
SQL> declare
2 begin
3 for vref in (select t.sid, t.serial#
4 from v$session t
5 where sid in
6 (select sid
7 from v$lock
8 where id1 in
9 (select object_id
10 from user_objects t
11 where object_name = upper('test')))) loop
12 execute immediate 'alter system kill session ''' || vref.sid || ',' ||
13 vref.serial# || '''';
14 end loop;
15 end;
16 /
PL/SQL procedure successfully completed
SQL>
SQL> select t.sid, t.serial#
2 from v$session t
3 where sid in
4 (select sid
5 from v$lock
6 where id1 in
7 (select object_id
8 from user_objects t
9 where object_name = upper('test')))
10 /
SID SERIAL#
---------- ----------
SQL>