Не в состоянии бросить процедуру
Я создал функцию и процедуру, функция вызывается в процедуре. Согласно выводу функции, в процедуре я вставляю данные в какую-то другую таблицу. Теперь эта процедура не выполняется и не сбрасывается. Если я попробую любой из них в SQL Developer или CMD, он работает и работает без ответа от БД.
DROP PROCEDURE proc_insert_data;
Sql разработчик просто постоянно работал там в течение неограниченного времени. Я проверил в user_objects и all_objects: идентификатор объекта является нулевым, и это недействительно.
1 ответ
Возможно, ваша процедура заблокирована каким-то сеансом, который еще не закончен. В вашем случае, я думаю, commit
операция не была сделана в какой-то другой сессии.
Вы можете проверить блокировку сессий следующим образом:
SELECT
s.blocking_session,
b.username blocking_username,
b.osuser blocking_osuser,
s.sid,
s.serial#,
s.seconds_in_wait,
s.username
FROM
v$session s,
v$session b
WHERE
s.blocking_session = b.sid
order by s.seconds_in_wait desc;
Затем, после того как вы узнаете сеанс, вы можете легко его убить или попросить администратора сделать это.
Execute as Sys admin user, Below query lists out all the blocking sessions
SELECT
s.blocking_session,
b.username blocking_username,
b.osuser blocking_osuser,
s.sid,
s.serial#,
s.seconds_in_wait,
s.username
FROM
v$session s,
v$session b
WHERE
s.blocking_session = b.sid
order by s.seconds_in_wait desc;
select sid,SERIAL#,status,username from v$session where sid=**[blocking_session]**;
alter system disconnect session 'sid,SERIAL#' IMMEDIATE;