Ver Mensaje Individual
  #4 (permalink)  
Antiguo 31/03/2014, 10:58
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 3 meses
Puntos: 360
Respuesta: Pl/Sql se cuelga al hacer Update

Todo suena a que tienes un bloqueo a nivel de registro. Es posible que otra sesión haya hecho un update sin decir ni commit ni rollback y el registro quedó en el estado bloqueado.

Código SQL:
Ver original
  1. SELECT
  2.     owner||'.'||object_name Objeto ,
  3.     oracle_username||' ('||s.STATUS||')' usuario_bd ,
  4.     os_user_name usuario_so ,
  5.     machine maquina ,
  6.     l.process procesos_unix ,
  7.     s.sid||','||s.serial# procesos_oracle ,
  8.     r.NAME rs ,
  9.     TO_CHAR(s.logon_time,'yyyy-mm-dd hh24:mi:ss') hora_ultima_conexion
  10. FROM v$locked_object l ,
  11.      dba_objects o ,
  12.      v$session s ,
  13.      v$transaction t ,
  14.      v$rollname r
  15. WHERE l.object_id = o.object_id
  16. AND   s.SID=l.session_id
  17. AND   s.taddr=t.addr
  18. AND   t.xidusn=r.usn
  19. ORDER BY
  20.       usuario_so, procesos_oracle, Objeto;

Con esa consulta puedes detectar los objetos bloqueados y cuales deberias matar desde un usaurio dba.

Una vez tienes detectado el proceso tanto de oracle como de sistema operativo basta con eliminar el bloqueo desde un usuario dba con la siguiente sentencia:

Código SQL:
Ver original
  1. ALTER System KILL SESSION '45,852';

Reemplazas 45,852 por el resultado que te de la columna procesos_oracle de la anterior consluta,

Nos cuentas como te va.

Saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming