Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Procedimientos que no se dejan compilar

Estas en el tema de Procedimientos que no se dejan compilar en el foro de Oracle en Foros del Web. Hola. Tengo un problema con algún procedimiento de oracle. El procedimiento está correcto, de hecho estaba compilado y funcionaba perfectamente. A ese procedimiento le llama ...
  #1 (permalink)  
Antiguo 15/09/2010, 00:19
 
Fecha de Ingreso: febrero-2002
Ubicación: Guadalajara
Mensajes: 103
Antigüedad: 22 años, 9 meses
Puntos: 0
Procedimientos que no se dejan compilar

Hola.
Tengo un problema con algún procedimiento de oracle.
El procedimiento está correcto, de hecho estaba compilado y funcionaba perfectamente.
A ese procedimiento le llama un job, y no sé pq motivo de repente ese procedimiento se pone como inválido y no se puede ejecutar ni recompilar a menos que se pare y rearranque la base de datos de nuevo.
Cuando se le da a recompilar (ya sea desde el toad o desde el sql) se queda un rato (muuucho rato) pensando pero no se termina de compilar.
¿a alguien le ha pasado algo parecido y sabe como resolverlo?
Muchísimas gracias
  #2 (permalink)  
Antiguo 15/09/2010, 07:47
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Procedimientos que no se dejan compilar

aca tratan un poco el tema.
http://www.tsoracle.com/wparchives/2...-lo-compilara/

mira las sugerencias que dan en las respuestas.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 17/09/2010, 00:55
 
Fecha de Ingreso: febrero-2002
Ubicación: Guadalajara
Mensajes: 103
Antigüedad: 22 años, 9 meses
Puntos: 0
Respuesta: Procedimientos que no se dejan compilar

Hola
Gracias por tu respuesta. Eso no es el problema que tengo.
El problema es que el procedimiento se queda como bloqueado y no se puede hacer nada con él, ni compilarlo, ni eliminarlo.
No sé si existe alguna tabla o vista donde ponga ese estado de "bloqueo", y cómo quitar el estado y ponerlo operativo.

Un saludo
  #4 (permalink)  
Antiguo 17/09/2010, 05:24
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 5 meses
Puntos: 43
Respuesta: Procedimientos que no se dejan compilar

Yo uso esta query para ver si algún paquete está pillado ( no bloqueado ) y por quien, mira a ver si te vale.

select /*+ CHOOSE */ a.sid, a.serial#, A.INST_ID,a.username, a.username "DB User",
a.osuser, a.status, a.terminal, a.type ptype, b.owner, b.object, b.type, a.USERNAME "DB User"
from gv$session a, gv$access b
where a.sid=b.sid and a.inst_id = b.inst_id
and b.type<>'NON-EXISTENT'
and (b.owner is not null) and (b.owner<>'SYSTEM') and (b.owner<>'SYS')
AND B.OBJECT like 'NOMBRE_DEL_PAQUETE'
ORDER BY STATUS, OBJECT , TYPE

Si el STATUS te aparece como ACTIVE, ese paquete si lo intentas compilar te dará TIMEOUT y no podrás.
  #5 (permalink)  
Antiguo 17/09/2010, 05:39
 
Fecha de Ingreso: febrero-2002
Ubicación: Guadalajara
Mensajes: 103
Antigüedad: 22 años, 9 meses
Puntos: 0
Respuesta: Procedimientos que no se dejan compilar

Gracias.
He probado la query y me como resultado el procedimiento que está pillado, ahora bien, ¿cómo lo despillo?
El usuario no me da mucha información.
Un saludo
  #6 (permalink)  
Antiguo 17/09/2010, 06:10
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 5 meses
Puntos: 43
Respuesta: Procedimientos que no se dejan compilar

Si dices que está pillado, es que ves la sesion como ACTIVE ¿ no ?.

En ese caso, tiras esta otra query preguntando por el SID y el SERIAL# de la otra que te he puesto y te guardas el SPID que te sale. Haces un kill session de ese SID y ese SERIAL# ( ALTER SYSTEM KILL SESSION 'SID,SERIAL#' ) y esperas un par de minutos. Si sigues viendo esa sesion ( Ahora la verás con STATUS = KILLED ), tienes que ir al sistema operativo y matar ese proceso ( El SPID que te has guardado hace un momento ). Si tienes UNIX / LINUX haces un KILL -9 SPID .

select p.SPID, s.SID, s.SERIAL#, s.USERNAME, s.LOCKWAIT, s.STATUS,
s.OSUSER, s.MACHINE, s.TERMINAL, s.PROGRAM, s.LOGON_TIME
from v$session s, v$process p
where p.addr(+)=s.paddr
order by SID

NOTA : Si la BBDD la tienes en RAC tienes que conectarte a la instancia correspondiente.
NOTA 2 : No se te olvide apuntar el SPID, algunas veces al hacer el KILL SESSION, la sesion aparece como KILLED , pero el SPID desaparece y entonces te las ves canicas para localizarla en el S.O.
  #7 (permalink)  
Antiguo 21/09/2010, 00:04
 
Fecha de Ingreso: febrero-2002
Ubicación: Guadalajara
Mensajes: 103
Antigüedad: 22 años, 9 meses
Puntos: 0
Respuesta: Procedimientos que no se dejan compilar

Hola de nuevo.
He ejecutado la segunda query que me propones y el "culpable" es oracle. Él es el proceso que tiene pillado el procedimiento, pone oracle@nombreSchema(J000).
Y claro, el oracle no puedo matarlo.

Un saludo y gracias
  #8 (permalink)  
Antiguo 21/09/2010, 00:28
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 5 meses
Puntos: 43
Respuesta: Procedimientos que no se dejan compilar

¿ el procedure es de oracle ?

Ay madre, ¿ que has hecho?, pon el nombre del pl , tira esta query y postea el resultado.

select owner,name,text
from dba_errors
where name like 'NOMBRE DEL PL'
AND OWNER like 'USUARIO ORACLE'
ORDER BY LINE
  #9 (permalink)  
Antiguo 21/09/2010, 00:39
 
Fecha de Ingreso: febrero-2002
Ubicación: Guadalajara
Mensajes: 103
Antigüedad: 22 años, 9 meses
Puntos: 0
Respuesta: Procedimientos que no se dejan compilar

Buenas.
Tranquilo, que no he hecho nada, sólo he ejecutado la query. No he matado ningún proceso ni nada.
Pues he ejecutado la nueva query que me has dicho y no da ningún resultado. He quitado la condición pero sigue estando vacía.
  #10 (permalink)  
Antiguo 21/09/2010, 02:35
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 5 meses
Puntos: 43
Respuesta: Procedimientos que no se dejan compilar

Pues ya me he quedao sin ideas, compi.
  #11 (permalink)  
Antiguo 21/09/2010, 05:56
 
Fecha de Ingreso: febrero-2002
Ubicación: Guadalajara
Mensajes: 103
Antigüedad: 22 años, 9 meses
Puntos: 0
Respuesta: Procedimientos que no se dejan compilar

Muchas gracias por las ideas que has tenido.
Yo tampoco sé por donde tirar. Si se te ocurre cualquier cosa, yo estoy dispuesta a probarlo.

Un saludo

Etiquetas: compilacion, procedures, procedimiento
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:36.