在Oracle中运行长查询之前使用dbms_application_info.set_module

时间:2015-04-01 13:42:13

标签: sql oracle

我试图弄清楚如何在运行长查询之前在v $ session中设置模块名称,以便我可以跟踪其进度。这样的事情可能吗?这不太奏效。我将如何改变呢?

BEGIN
dbms_session.set_identifier(client_id=>'ABC');
dbms_application_info.set_client_info(client_info=>'ABC TEST');
--
dbms_application_info.set_module(module_name=>'SOME NAME', action_name=>'SOME ACTION');
--
SELECT * from tablename where .....
--
dbms_application_info.set_module(module_name=>'',action_name=>'');
END;

1 个答案:

答案 0 :(得分:1)

必须是这样的:

BEGIN
DBMS_APPLICATION_INFO.SET_MODULE('My procedure', 'starting');

DBMS_APPLICATION_INFO.SET_ACTION('running');
SELECT * from tablename where .....

DBMS_APPLICATION_INFO.SET_MODULE(NULL, NULL);
END;

在执行查询时,您可以从v$session

中选择(当然是在另一个会话中)