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


#1

Хүснэгт устгах үед энэ алдаа гарвал уг хүснэгтийг хаа нэгтээ ашиглаж байгаа тул устгах боломжгүй гэсэн үг юм. Дараах жишээнд 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.