|
知道用户名就能够知道用户所对应的session,用如下sql,
=======================================
SELECT usr.user_name uname, app.application_short_name shrtnam,
resp.responsibility_name respnam, form_name frmnam, vproc.pid pid,
vsess.SID SID, vsess.status, vsess.serial# sn, vproc.spid spid, vsess.osuser suser,
vsess.process process, vsess.machine smach, vsess.program sprog,
vsess.client_info cli,vsess.action action
FROM applsys.fnd_logins l,
applsys.fnd_application app,
applsys.fnd_login_responsibilities lresp,
applsys.fnd_login_resp_forms lform,
applsys.fnd_responsibility_tl resp,
applsys.fnd_form frm,
applsys.fnd_user usr,
v$process vproc,
v$session vsess
WHERE l.login_id = lresp.login_id(+)
AND l.login_id = lform.login_id(+)
AND app.application_id(+) = resp.application_id
AND l.user_id = usr.user_id
AND lresp.responsibility_id = resp.responsibility_id(+)
AND lresp.resp_appl_id = resp.application_id(+)
AND lform.form_id = frm.form_id(+)
AND lform.form_appl_id = frm.application_id(+)
AND lresp.end_time IS NULL
AND lform.end_time IS NULL
AND vproc.addr = vsess.paddr
AND l.spid = vsess.process
AND l.pid = vproc.pid
AND (l.pid, l.start_time) IN (
SELECT pid, MAX (start_time)
FROM fnd_logins
WHERE end_time IS NULL
AND terminal_id != 'Concurrent'
GROUP BY pid)
ORDER BY vproc.pid |
|