select 'alter system kill session ''' || sid || ',' || serial# || '''' as ddl from v$session
where logon_time < sysdate - (1/24);
-- session auto kill using PL/SQL
BEGIN
-- 결과만큼 반복할 SQL 구문을 작성하고 별칭을 CUR로 부여
FOR CUR IN (
SELECT
'ALTER SYSTEM KILL SESSION ''' || SID || ',' || SERIAL# || ''''
AS DDL
FROM V$SESSION
WHERE LOGON_TIME < SYSDATE - (1/24)
)
LOOP
BEGIN
-- 조회된 구문 실행
EXECUTE IMMEDIATE CUR.DDL;
EXCEPTION
-- 예외 발생 시 아무작업을 하지 않음
WHEN OTHERS THEN
NULL;
END;
END LOOP;
END;
/
CREATE OR REPLACE PROCEDURE AUTO_CLEAR_SESSION AS
--(작성한 PL/SQL 구문)
-- session auto kill procedure
CREATE OR REPLACE PROCEDURE AUTO_CLEAR_SESSION AS
BEGIN
-- 결과만큼 반복할 SQL 구문을 작성하고 별칭을 CUR로 부여
FOR CUR IN (
SELECT
'ALTER SYSTEM KILL SESSION ''' || SID || ',' || SERIAL# || ''''
AS DDL
FROM V$SESSION
WHERE LOGON_TIME < SYSDATE - (1/24)
)
LOOP
BEGIN
-- 조회된 구문 실행
EXECUTE IMMEDIATE CUR.DDL;
EXCEPTION
-- 예외 발생 시 아무작업을 하지 않
WHEN OTHERS THEN
NULL;
END;
END LOOP;
END;
/