Oracle查看正在执行的存储过程
时间: 2023-07-04 19:26:14 浏览: 468
您可以使用以下SQL语句来查看当前正在执行的存储过程:
```
SELECT * FROM V$SESSION WHERE STATUS='ACTIVE' AND TYPE='USER' AND UPPER(MODULE) LIKE '%PROCEDURE_NAME%';
```
其中,将 PROCEDURE_NAME 替换为您想要查看的存储过程的名称。此查询将返回所有当前正在执行的会话,其中模块名称包含指定的存储过程名称。您可以查看这些会话的详细信息,以了解有关正在执行的存储过程的更多信息。
相关问题
如何查看oracle 正在执行的存储过程进度
可以通过以下两种方式查看Oracle正在执行的存储过程进度:
1. 使用V$SESSION_LONGOPS视图:
SELECT target.*,sid,start_time,sofar,totalwork,time_remaining
FROM v$session_longops target
WHERE target.opname LIKE '%<procedure_name>%'
AND target.target_desc='<procedure_name>' AND sofar <> totalwork;
<procedure_name>是指正在执行的存储过程的名称。此查询将返回运行指定存储过程的会话的标识符(SID)、开始时间、已完成工作量(sofar)、总工作量(totalwork)和预计剩余时间(time_remaining)等信息。
2. 使用DBMS_APPLICATION_INFO包:
在存储过程中,可以使用DBMS_APPLICATION_INFO包来设置进度信息。例如,以下代码将进度信息设置为'正在执行存储过程...':
DBMS_APPLICATION_INFO.SET_ACTION('正在执行存储过程...');
在查询V$SESSION视图时,将会看到该会话的ACTION列中显示此信息。
这种方式需要在存储过程中进行修改。如果存储过程已经编写完成并且正在运行,则可以使用第一种方法来查看进度信息。
oracle查看存储过程执行情况
你可以通过以下步骤查看存储过程的执行情况:
1. 执行存储过程。可以使用 SQL Developer、SQL*Plus 或其他工具来执行存储过程。
2. 打开 SQL Developer 或 SQL*Plus 控制台,并使用以下语句查看存储过程的执行情况:
```
SELECT *
FROM V$SESSION
WHERE PROGRAM LIKE 'PL/SQL%' AND STATUS = 'ACTIVE';
```
这将显示当前正在执行的 PL/SQL 会话的详细信息,包括会话 ID、用户、进程 ID、执行时间等。
3. 如果需要更详细的信息,可以查询动态性能视图 V$SQL 和 V$SQLAREA。例如,可以使用以下语句查询最近执行的 SQL 语句:
```
SELECT *
FROM V$SQL
WHERE PROGRAM_ID = (SELECT MIN(PROGRAM_ID) FROM V$SESSION WHERE PROGRAM LIKE 'PL/SQL%' AND STATUS = 'ACTIVE');
```
这将显示最近执行的 SQL 语句的详细信息,包括 SQL ID、执行计划、执行时间等。
注意:这些方法只适用于正在执行的会话。如果需要查看存储过程的历史执行情况,可以查询数据库的审计日志或使用第三方工具。
阅读全文