在v$session中设置module和action

oracle中有一个包dbms_application_info,它可以把一些程序信息加入到v$session中。这样我们就可以通过查询v$session知道程序当前的一些信息。比如:当前执行的模块名、正在执行的命令等。

下例展示这个包的简单用法:
session 1:
SQL> select sid from v$mystat where rownum=1;

       SID
----------
        10

SQL> create or replace procedure proc1
  2  as
  3  begin
  4    dbms_application_info.set_action('PROC1');
  5    for i in 1..50 loop
  6      dbms_lock.sleep(1);
  7    end loop;
  8    dbms_application_info.set_action(NULL);
  9  end;
 10  /

Procedure created.

SQL> create or replace procedure proc2
  2  as
  3  begin
  4    dbms_application_info.set_action('PROC2');
  5    for i in 1..30 loop
  6      dbms_lock.sleep(2);
  7    end loop;
  8    dbms_application_info.set_action(NULL);
  9  end;
 10  /

Procedure created.

SQL> create or replace procedure proc_main
  2  as
  3  begin
  4    dbms_application_info.set_module('PROC_MAIN','MAIN');
  5    dbms_lock.sleep(20);
  6    proc1;
  7    proc2;
  8    dbms_application_info.set_module('PROC_MAIN',NULL);
  9  end;
 10  /

Procedure created.

SQL> exec proc_main;


session 2:
SQL> select sid,serial#,module,action from v$session where sid=10;

       SID    SERIAL# MODULE     ACTION
---------- ---------- ---------- ----------
        10         26 PROC_MAIN  MAIN
......       
SQL> select sid,serial#,module,action from v$session where sid=10;

       SID    SERIAL# MODULE     ACTION
---------- ---------- ---------- ----------
        10         26 PROC_MAIN  PROC1
......
SQL> select sid,serial#,module,action from v$session where sid=10;

       SID    SERIAL# MODULE     ACTION
---------- ---------- ---------- ----------
        10         26 PROC_MAIN  PROC2
......
SQL> select sid,serial#,module,action from v$session where sid=10;

       SID    SERIAL# MODULE     ACTION
---------- ---------- ---------- ----------
        10         26 PROC_MAIN

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/228190/viewspace-207190/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/228190/viewspace-207190/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值