set termout off
结果不输出到屏幕上,只在脚本中有效。@D:\demo01.sql
一、--查看当前会话
1、SQL> select sid from v$mystat where rownum=1;
SID
----------
134
2、SQL> SELECT SYS_CONTEXT( 'USERENV', 'SID' ) FROM DUAL;
SYS_CONTEXT('USERENV','SID')
--------------------------------------------------------------------------------
134
二、设置查看会话的client_info
SQL> SELECT sys_context('USERENV', 'CLIENT_INFO') FROM dual;
SYS_CONTEXT('USERENV','CLIENT_
--------------------------------------------------------------------------------
192.168.5.223
SQL> exec dbms_application_info.set_client_info('TEST');
PL/SQL procedure successfully completed
SQL> SELECT sys_context('USERENV', 'CLIENT_INFO') FROM dual;
SYS_CONTEXT('USERENV','CLIENT_
--------------------------------------------------------------------------------
TEST
DBMS_APPLICATION_INFO 可以设置SESSION的MODULE,ACTION,CLIENT INFO等状态信息,对应着V$SESSION表中的3个字段
三、DBMS_ALERT包提供了注册,发送和接收告警的能力。
declare
l_msg long;
l_status number;
begin
dbms_alert.register( 'WAITING' );
for i in 1 .. 999999 loop
dbms_application_info.set_client_info( i );
dbms_alert.waitone( 'WAITING', l_msg, l_status, 0 );
exit when l_status = 0;
for x in ( select * from big_table order by 1, 2, 3, 4 )
loop
null;
end loop;
end loop;
end;
/
当执行下边的语句时,上边的会话停止
begin
dbms_alert.signal('WAITING','');
COMMIT;
END;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25323853/viewspace-687557/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25323853/viewspace-687557/