Me sale un error que nunca habia visto
estoy programando en PL/SQL y al momento de crear las tablas hay dos en las que me sale un error que nunca habia visto que dice lo siguiente:
ERROR en linea 1:
ORA-00054: recurso ocupado y obtenido con NOWAIT especificado
que puedo hacer estoy desesperado? :(
ERROR en linea 1:
ORA-00054: recurso ocupado y obtenido con NOWAIT especificado
que puedo hacer estoy desesperado? :(
Hola,
a mi me sale el mismo error. No me sale al crear las tablas, me sale al intentar borrar la tabla.
El problema es que no se que hice sin darme cuenta que no me permite ni borrar la tabla entera ni borrar los registros de la tabla. Ya he probado a entrar y salir.. y nada..... si alguien me ayuda seria de gran ayuda porque pufff
a mi me sale el mismo error. No me sale al crear las tablas, me sale al intentar borrar la tabla.
El problema es que no se que hice sin darme cuenta que no me permite ni borrar la tabla entera ni borrar los registros de la tabla. Ya he probado a entrar y salir.. y nada..... si alguien me ayuda seria de gran ayuda porque pufff
Mi experiencia sobre lo que comentas ( Y sobre eso tengo mucha )
Una razón puede ser esta : Has hecho una transaccion sobre esa tabla, por lo que sea la has bloqueado ( O un paquete, procedure que kla utiliza ) y has cerrado el sql-plus o lo que estabas utilizando, la conexión del cliente con la BBDD la has cerrado ( Aunque el cliente y la BBDD estén en la misma máquina ) pero el proceso sigue rulando en el núcleo oracle.
Lo que tienes que hacer es sacar el identificador de esa sesión Oracle y matarla. Si el proceso sigue rulando en la maquina tienes que matar el proceso que rula en el Sistema operativo.
Te pongo las consultas y lo que tienes que hacer :
Esta consulta puede servirte para sacar el identificador de la sesión oracle para matarla ( Tienes que filtrarla con tus datos ):
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
Con el sid y el serial# ( segundo y tercer dato ) matas la sesion oracle, pero antes apunta el primero ( SPID ).
ALTER SYSTEM KILL SESSION 'SID,SERIAL#';
Ahora vuelve a hacer la consulta que te he puesto y si sigues viendo la sesion oracle, debes de matar ese proceso en el sistema operativo, tienes que utilizar el primer dato de la consulta , el que te he dicho que apuntes ( SPID )
En Unix es algo parecido a esto :
KILL -9 SPID.
EN windows no sé como se mata.
Despues de esto ya debes de tener via libre para hacer lo que quieras en la tabla
Ya me contarás
Una razón puede ser esta : Has hecho una transaccion sobre esa tabla, por lo que sea la has bloqueado ( O un paquete, procedure que kla utiliza ) y has cerrado el sql-plus o lo que estabas utilizando, la conexión del cliente con la BBDD la has cerrado ( Aunque el cliente y la BBDD estén en la misma máquina ) pero el proceso sigue rulando en el núcleo oracle.
Lo que tienes que hacer es sacar el identificador de esa sesión Oracle y matarla. Si el proceso sigue rulando en la maquina tienes que matar el proceso que rula en el Sistema operativo.
Te pongo las consultas y lo que tienes que hacer :
Esta consulta puede servirte para sacar el identificador de la sesión oracle para matarla ( Tienes que filtrarla con tus datos ):
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
Con el sid y el serial# ( segundo y tercer dato ) matas la sesion oracle, pero antes apunta el primero ( SPID ).
ALTER SYSTEM KILL SESSION 'SID,SERIAL#';
Ahora vuelve a hacer la consulta que te he puesto y si sigues viendo la sesion oracle, debes de matar ese proceso en el sistema operativo, tienes que utilizar el primer dato de la consulta , el que te he dicho que apuntes ( SPID )
En Unix es algo parecido a esto :
KILL -9 SPID.
EN windows no sé como se mata.
Despues de esto ya debes de tener via libre para hacer lo que quieras en la tabla
Ya me contarás