7

Tengo un problema inusual en Oracle SQL Developer. Cuando intento compilar un procedimiento de almacenamiento, cuelgo la pantalla Oracle SQL DEveloper y no puedo hacer ninguna actividad, excepto matar la instancia del desarrollador de SQL y volver a comenzar.La compilación del procedimiento almacenado cuelga Oracle SQL Developer

Pero el mismo problema. ¿Alguien se enfrentó a tal problema? Soy nuevo en el oráculo.

Aquí algunas adiciones al problema Esperé durante 5 a 10 minutos y dio este mensaje

ORA-04021 timeout occurred while waiting to lock object 

Pero yo soy la única persona que trabaja en esta instancia de Oracle

Respuesta

8

Uno de sus intentos anteriores de crea el procedimiento, que mataste, todavía está atascado y activo. Debe eliminar esa sesión de Oracle utilizando http://www.oracle-base.com/articles/misc/KillingOracleSessions.php

La otra fuente de este error es que otro proceso en su base de datos ejecuta el procedimiento mientras intenta compilarlo. Utilice esta consulta para averiguar qué proceso se está ejecutando:

select sess.sid, sess.username, sql_text 
from v$sqlarea sqlarea, v$session sess 
where sess.sql_hash_value = sqlarea.hash_value 
and sess.sql_address = sqlarea.address 
and sess.username is not null; 
+0

He intentado hacerlo un par de veces. Pero cuando lo compilo de nuevo, el mismo error. – user367134

+1

¿Cómo ejecutar la consulta anterior en SQL Developer? – user367134

+1

session es una palabra reservada. Cámbielo a otro "nombre" (por ejemplo, "v $ session sess"). –

1

de consulta v$locked_object para ver si hay objetos que están bloqueados actualmente están en uso por el procedimiento almacenado. Si es así, rastree la consulta/módulo que lo tiene bloqueado & fin de la consulta.

El enlace proporcionado por Thomas da los detalles de cómo matar una sesión, una vez que se matan las sesiones & v$locked_object no muestra registros, debe poder compilar bien.

Cuestiones relacionadas