PXT_SESSION_CLEANUP
Arguments:
Name | Data Type | Default Value | In/Out |
---|
BOUND_IN | NUMBER(38) | | IN |
COMMIT_INTERVAL | NUMBER(38) | | IN |
BATCH_SIZE | NUMBER(38) | | IN |
SESSIONS_DELETED | NUMBER(38) | | IN/OUT |
DDL scriptSource
Legend: string keyword reserved word operator
1: procedure pxt_session_cleanup (
2: bound_in in number,
3: commit_interval in number := 100,
4: batch_size in number := 50000,
5: sessions_deleted in out number)
6: is
7: cursor sessions (bound_val in number) is
8: select rowid
9: from pxtsessions
10: where expires < bound_val;
11:
12: counter number := 0;
13: begin
14: for session in sessions (bound_in) loop
15: delete
16: from pxtsessions
17: where rowid = session.rowid;
18:
19: counter := counter + 1;
20: if mod(counter, commit_interval) = 0 then
21: commit;
22: end if;
23:
24: if counter >= batch_size then
25: commit;
26: sessions_deleted := counter;
27: return;
28: end if;
29: end loop;
30:
31: commit;
32: sessions_deleted := counter;
33: end;