ERROR at line 1: ORA-14452: attempt to create, alter or drop an index on temporary table already in use

Хүснэгт устгах үед энэ алдаа гарвал уг хүснэгтийг хаа нэгтээ ашиглаж байгаа тул устгах боломжгүй гэсэн үг юм. Дараах жишээнд GG schema-гийн GGS_STICK хүснэгт дээр харуулах болно.

SQL> drop user gg cascade;
drop user gg cascade
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-14452: attempt to create, alter or drop an index on temporary table already
in use

Юуны өмнө ашиглаж байгаа , түгжсэн session id-г олно.

select sid from v$lock where id1 = (select object_id from dba_objects where owner = 'GG' and object_name = 'GGS_STICK');

 SID
----------
       151
       281
       344
       408
       155
       184
       257
       440
       361

Олон мөр буцааж байгаа тул дараах скрипт ашиглаж бүгдийг хаая.

begin
for i in (select sid from v$lock where id1 = (select object_id from dba_objects where owner = 'GG' and object_name = 'GGS_STICK')) loop
  for k in (select sid,serial# from v$session where sid='' || i.SID|| '') loop
  execute immediate 'alter system kill session ''' || k.SID || ',' || k.SERIAL# || ''' immediate';
  end loop;
end loop;
end; 

Одоо хүснэгтээ устгая.

SQL> drop table gg.ggs_stick;

Table dropped.
3 Likes