我正在使用
DBMS_APPLICATION_INFO.SET_ACTION
指示当前正在执行过程的哪一部分。例如:
DBMS_APPLICATION_INFO.SET_ACTION(ACTION_NAME=>'1/9 CALCULATING SPACE AVAILABLE...');
只需在存储过程的各个位置添加这些行,即可在v $ session中添加条目,可以很容易地查询这些条目以供参考,并转回给用户。但是,如果我从oracle调度程序作业中运行相同的过程,则不会在v $ session中获得ACTION_NAME的条目。仅显示作业本身的详细信息。
有人知道我将如何解决这个问题,以产生与我只是手动执行该过程而不是按工作执行该过程时显示的状态指示符相同的状态指示符吗?
谢谢。
答案 0 :(得分:0)
除了添加从v $ session动态性能视图获取的信息可能是一个不错的选择之外,您还可以添加Dbms_Session.Set_Identifier
:
Declare
i_action varchar2(1000):='1/9 CALCULATING SPACE AVAILABLE...';
Begin
If ( i_action is not null ) Then
Dbms_Application_Info.Set_Action( i_action );
Dbms_Session.Set_Identifier( i_action );
End If;
End;