Para obtener una lista con los objetos bloqueados ejecucutados: select substr(a.os_user_name,1,8) "OS User" , substr(b.object_name,1,30) "Object Name" , substr(b.object_type,1,8) "Type" , substr(c.segment_name,1,10) "RBS" , e.process "PROCESS" , substr(d.used_urec,1,8) "# of Records" , e.sid , e.serial# , p.* from v$locked_object a , dba_objects b , dba_rollback_segs c , v$transaction d , v$session e , v$process p where a.object_id = b.object_id and a.xidusn = c.segment_id and a.xidusn = d.xidusn and a.xidslot = d.xidslot and d.addr = e.taddr and p.addr = e.paddr Si intentamos por ejemplo hacer un "drop table" obtendremos un error del tipo ORA-00054: recurso ocupado y obtenido con NOWAIT. Para desbloquear uno de los objetos usamos alguna de las siguientes sentencias ALTER SYSTEM DISCONNECT SESSION 'SID, SERIAL' IMMEDIATE; o bien ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE; En el ca...
Comentarios