DBMS_APPLICATION_INFO.SET_ACTION不起作用

时间:2019-06-13 04:21:47

标签: oracle plsql

我正在使用

DBMS_APPLICATION_INFO.SET_ACTION 

指示当前正在执行过程的哪一部分。例如:

DBMS_APPLICATION_INFO.SET_ACTION(ACTION_NAME=>'1/9 CALCULATING SPACE AVAILABLE...');

只需在存储过程的各个位置添加这些行,即可在v $ session中添加条目,可以很容易地查询这些条目以供参考,并转回给用户。但是,如果我从oracle调度程序作业中运行相同的过程,则不会在v $ session中获得ACTION_NAME的条目。仅显示作业本身的详细信息。

有人知道我将如何解决这个问题,以产生与我只是手动执行该过程而不是按工作执行该过程时显示的状态指示符相同的状态指示符吗?

谢谢。

1 个答案:

答案 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;