如何查询正在执行的oracle存储过程
时间: 2023-07-18 17:29:50 浏览: 107
你可以通过以下语句查询正在执行的Oracle存储过程:
```
SELECT s.sid, s.serial#, p.spid, s.username, s.status, s.osuser, s.machine, s.program, p.program, p.module,
p.action, s.sql_hash_value, s.sql_address, s.sql_id, s.sql_child_number, s.logon_time
FROM v$session s, v$process p
WHERE s.paddr = p.addr
AND s.status = 'ACTIVE'
AND s.username IS NOT NULL
AND s.type = 'USER'
AND s.sql_hash_value = (SELECT sql_hash_value FROM v$session WHERE sid = <sid_of_session>)
AND s.sql_child_number = (SELECT sql_child_number FROM v$session WHERE sid = <sid_of_session>)
AND s.sql_address = (SELECT sql_address FROM v$session WHERE sid = <sid_of_session>)
```
将 `<sid_of_session>` 替换为你要查询的会话的 SID。这将返回正在执行的存储过程的相关信息,包括进程 ID、用户名、状态、SQL ID 等等。
阅读全文