oracle - DBMS_APPLICATION_INFO.SET_ACTION 不起作用
问题描述
我在用
DBMS_APPLICATION_INFO.SET_ACTION
指示当前正在执行过程的哪一部分。例如:
DBMS_APPLICATION_INFO.SET_ACTION(ACTION_NAME=>'1/9 CALCULATING SPACE AVAILABLE...');
只需在存储过程的不同点添加这些行,就可以轻松地查询 v$session 中的条目以获取信息并转发给用户。但是,如果我从 oracle 调度程序作业运行相同的过程,我不会在 v$session 中获得 ACTION_NAME 的条目。仅显示作业本身的详细信息。
有谁知道我如何解决这个问题,以生成与我手动执行程序时显示的相同状态指示器,而不是通过作业?
谢谢。
解决方案
Dbms_Session.Set_Identifier
除了填充从 v$session 动态性能视图派生的信息之外,您还可以添加以下内容:
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;
推荐阅读
- r - 如何将 gs4_create() 输出直接发送到 googledrive 文件夹
- angular - 如何使用角度从服务中检索 api 数据以显示在控制台上
- node.js - 如何从新创建的数据库条目中获取 ID 以进行重定向 - Mongoose
- javascript - 无法使用 $push 更新 Mongo DB 对话集合
- android - 与滑动相反的方向滚动(cordova android webview)
- java - 根据使用 Thymeleaf 选择的选择选项更改 HTML 表单布局
- python - 带参数的生成器?
- flutter - 找不到框架flutter_plugin_android_lifecycle颤振
- python - 正则表达式在数字范围内查找匹配项
- c# - 有没有办法让一个类知道订阅它的委托的东西成功运行了?